收藏 分销(赏)

JSP_struts2标签大全.doc

上传人:xrp****65 文档编号:6277910 上传时间:2024-12-04 格式:DOC 页数:45 大小:426KB 下载积分:10 金币
下载 相关 举报
JSP_struts2标签大全.doc_第1页
第1页 / 共45页
JSP_struts2标签大全.doc_第2页
第2页 / 共45页


点击查看更多>>
资源描述
Struts 2标签 1.a 现场学习3 2.action 3 3. actionerror 4 4. actionmessage 5 5. append 5 6. bean 7 7.checkbox 7 8.checkboxlist 8 9. combobox 9 10. conponent  9 11. date 11 12. datetimepicker 12 13. debug 12 14. div 12 15. doubleselect 13 16. else 15 17. elseif 15 18. fielderror 16 19. file 16 21. generator 17 22.  head 18 23. hidden 18 24.  i18n 19 25. if 19 26. include 20 27. inputtransferselect 21 28.  iterator 21 29. label 22 30. optgroup 23 31. optiontransferselect 24 31. merge 26 32. param 27 33.password 28 34. property 28 35. push 29 36. radio 29 37. reset 30 38. select 30 39.  set 32 41. submit 33 42. subset 35 43. tabbedPanel 37 44. text 39 45.  textarea 39 45. textfield 40 46. token 40 47. tree 41 48. treenode 41 49.  updownselect 42 50. url 44 1.a  a标签创建一个HTML超链接,等价于HTML 的<a  href="".... 示范代码: <s:a href="login.action">登陆</s:a> 2.action  使用action标签 可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。如果指定 了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。 action标签的属性: id: 可选属性,该属性将会作为该Action的引用ID name: 必填属性,指定该标签调用哪个Action namespace: 可选,指定该标签调用的Action所在的namespace. executeResult: 可选,指定是否要将Action的处理结果页面包含到本页面。默认是false,即不包含 ignoreContextParams: 可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。 下面是本示例应用中的Action类,包含连个处理逻辑。代码如下 public class TagAction extednds ActionSupport {     //封装用户请求参数的author属性     private String author;     //author的get和set的方法,省略……     public String execute() throws Exception     {         return   "done";     }          public String login() throws Exception     {         ServletActionContext.getRequest().setAttribute("author",getAuthor());         return "done";     } } 上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action。代码如下 <package  name="lee" extends="struts-default">     <!--定义第一个Action,使用lee.TagAction的execute方法作为处理逻辑-->     <action name="tag1"  class="lee.TagAction">         <result name="done">succ.jsp</result>     </action>     <!--定义第二个Action,使用lee.TagAction的login方法作为处理逻辑-->     <action  name="tag2"  class="lee.TagAction"  method=“login”>         <result   name="done" > loginSucc.jsp </result>     </action>     .............. </package> 上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过<s:action.../>标签来调用这两个逻辑Action,部分jsp代码如下:        下面调用第一个Action,并将结果包含到本页面中。     <s:action   name="tage1"  executeResult=“true” />         下面调用第二个Action,并将结果包含到本页面中。<br>         阻止本页面请求参数传入Action  <br>     <s:action   name=“tag2”  executeResult="true"  ignoreContextParams="true" />     </hr>     下面调用第二个Action,且不将结果包含到本页面中。<br>     <s: action   name="tag2"  executeResult="false" />     <s:property   value="#attr.author"/> 上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action。 3. actionerror 这个标签负责输出错误信息到客户端,例子如下: Action代码如下: package lee; import com.opensymphony.xwork2.ActionSupport; public class DemoAction extends ActionSupport { @Override public String execute() {    addActionError("第一条错误消息!");     addActionError("第二条错误消息!");     return SUCCESS; } } JSP页面代码如下: <%@ page contentType="text/html; charset=GBK" language="java"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> </head><body><s:actionerror/></body></html> 4. actionmessage  这个标签负责输出提示信息到客户端,例子如下: Action代码如下: package lee; import com.opensymphony.xwork2.ActionSupport; public class DemoAction extends ActionSupport { @Override public String execute() {    addActionMessage("第一条普通消息!");     addActionMessage("第二条普通消息!");     return SUCCESS; }} JSP页面代码如下: <%@ page contentType="text/html; charset=GBK" language="java"%> <%@taglib prefix="s" uri="/struts-tags"%> <html><head></head> <body><s:actionmessage /></body></html> 5. append  来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。 参数 名字 是否必须 默认值 可否使用表达式 类型 描述 id 否   是 String 用来保存结果iterator的对象在value context中的名字。 例子 Action类 public class AppendIteratorTagAction extends ActionSupport {    private List myList1;  private List myList2;  private List myList3;      public String execute() throws Exception {        myList1 = new ArrayList();      myList1.add("1");      myList1.add("2");      myList1.add("3");        myList2 = new ArrayList();      myList2.add("a");      myList2.add("b");      myList2.add("c");        myList3 = new ArrayList();      myList3.add("A");      myList3.add("B");      myList3.add("C");        return "done";  }    public List getMyList1() { return myList1; }  public List getMyList2() { return myList2; }  public List getMyList3() { return myList3; }   标签使用 <s:append id="myAppendIterator">      <s:param value="%{myList1}" />      <s:param value="%{myList2}" />      <s:param value="%{myList3}" /> </s:append> <s:iterator value="%{#myAppendIterator}">      <s:property /> </s:iterator> 6. bean  bean标签 用于创建一个JavaBean的实例。创建JavaBean实例时,可以在标签体内使用<param.../>标签为该JavaBean实例 传入属性,要使用这个标签,需要为该JavaBean类提供对应的setter方法。如该JavaBean类提供了对应的getter方法,我们就可以访 问对应的属性。 bean标签 的属性: name: 必填,指定要实例化的JavaBean的实现类 id: 可选。如指定了该属性,则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。 【!!注意: 在bean标签内时,bean标签创建的JavaBean实例放在valuestack的栈顶,该标签结束,生成的子集被移出valuestack栈。除非指定了id属性】 下面是个简单的JavaBean public  class  Person {  private String name; private  int age;      //getter和setter方法省略     ……} 在jsp页面中的代码: <!--使用bean标签创建一个lee.Person类的实例--> <s:bean   name="lee.Person"> <!--使用Param标签为lee。Person类的实例传入参数--> <s:param   name="name"  value="'yeeku'"/> <s:param  name="age"   value="29"/> <s:property  value="name"/> <br> <s: property  value="age"/> </s:bean> 带id属性的用法: <s:bean   name="lee.Person"  id=“p”> <!--使用Param标签为lee。Person类的实例传入参数--> <s:param   name="name"  value="'yeeku'"/> <s:param   name="age"   value="29"/></s:bean> <s:property   value="#p.name"/> <br> <s:property   value="#p.age"/> 7.checkbox  checkbox标签输出一个HTML复选框,等价于HTML代码:<input type="checkbox" .../>。 代码  1. <s:checkbox label="性别" name="user.sex" value="true" fieldValue="dddd"/>   这里value的值是“假”值,fieldValue的值才是真值。当value="true"表示这个复选框被选上。为false时不选上  另外,它在向html转换后会多出一个隐藏域,很奇怪。上面的代码输出成html是这样的:  代码  1. <input type="checkbox" name="user.sex" value="dddd" checked="checked" id="saveUser_user_sex"/>   2. <input type="hidden" name="__checkbox_user.sex" value="dddd" /> <label for="saveUser_user_sex" class="checkboxLabel">性别</label>   8.checkboxlist  复选框 名称 必需 默认 类型 描述 fieldValue   是   true   String   指定在复选框选中时,实际提交的值     复选框组,对应Action中的集合 名称 必需 默认 类型 描述 list   是   无   Cellection Map Enumeration Iterator array 要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 listKey 否 无 String 指定集合对象中的哪个属性作为选项的value listValue   否   无   String   指定集合对象中的哪个属性作为选项的内容   例子:checkboxlistTag.jsp <%@ page contentType="text/html;charset=GBK" %> <%@ taglib prefix="s" uri="/struts-tags" %> <s:form>     <s:checkboxlist name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/> </s:form> 9. combobox  combobox标签生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name属性,也就不会产生请求参数。使用该标签时,需要指定一个list属性,该list属性指定的集合将用于生成列表框。 例子如下: <%@ page contentType="text/html; charset=GBK" language="java"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"/> <title>使用s:combobox生成下拉输入框</title> <s:head/> </head> <body> <h3>使用s:combobox生成下拉输入框</h3> <s:form>     <s:combobox label="请选择您喜欢的图书" theme="css_xhtml" labelposition="top"         list="{'Spring2.0' , 'J2EE' , 'Ajax'}"         size="20" maxlength="20" name="book"/> </s:form> </body> </html> 通过访问上面的JSP页面,我们可以看到上面的文本框,用户可以自行输入,可也以选择下面的checkbox中的内容来进行输入。需要注意的是,此时的下拉列表仅仅是用于辅助输入的,并没有任何实际意义,因此不能指定它的listKey和listValue属性。 10. conponent  conponent标签用于使用自定义标签,因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性: theme:自定义组件所使用的主题,默认使用xhtml主题。 templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。 template:指定自定义组件所使用的模板。 此外,还可以component标签中使用param标签来注入参数的值。例子如下: <%@ page contentType="text/html; charset=GBK" language="java"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>使用s:component标签</title> </head> <body> <h3>使用s:component标签</h3> 使用自定义主题,自定义主题目录<br>  从Web应用根路径下加载模板,使用ftl模板。  <s:component          theme="customTheme"          templateDir="customTemplateDir"          template="ftlCustomTemplate"> <s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" /> </s:component> <hr/>     使用自定义主题,自定义主题目录<br>  从Web应用根路径下加载模板,使用JSP模板。      <s:component          theme="customTheme"          templateDir="customTemplateDir"          template="jspCustomTemplate.jsp"> <s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" /> </s:component>       <hr/> 使用默认主题(xhtml),默认主题目录(template)<br>  从Web应用中加载模板,使用JSP模板。     <s:component template="mytemplate.jsp"> <s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" /> </s:component> <hr/>  使用自定义主题,自定义主题目录<br>  从/WEB-INF/classes路径下加载模板,使用ftl模板。     <s:component theme="myTheme" templateDir="myTemplateDir" template="myAnotherTemplate"> <s:param name="list" value="{'Spring2.0' , 'J2EE' , 'Ajax'}" /> </s:component> </body> </html> 上面使用了FreeMarker和JSP模板,FreeMarker模板的ftlCustomTemplate.ftl代码如下: <div style="background-color:#bbbbbb;"> FreeMarker自定义模板<br> 请选择您喜欢的图书<br> <@s.select list="parameters.list"/> </div> JSP模板jspCustomTemplate.jsp的代码如下: <%@ page contentType="text/html; charset=GBK" language="java"%> <%@taglib prefix="s" uri="/struts-tags" %> <div style="background-color:#eeeeee;"> <b>JSP自定义模板<br> 请选择您喜欢的图书<br></b> <s:select list="parameters.list"/> </div> 11. date  date标签 用于格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。 date属性: format: 可选,如指定该属性,将根据该属性指定的格式来格式化日期 nice: 可选,值为true或者false,用于指定是否输出指定日期和当前时刻的时差。默认是false,即不输出 name: 必填,指定要格式化的日期 id: 可选,指定引用该元素的id值 通常,nice属性和format属性不同时指定,(不指定nice属性时,该属性值为false)。因为指定nice为true,代表输出指定日期和当前时刻的时差;指定format属性,则表明将指定日期按format指定的格式来个格式化输出。 如果即没有指定format,也没指定nice=“true”,则系统会到国际化资源文件中寻找key为struts.date.format的消 息,将该消息当成格式化文本来格式化日期。如果无法找到key为struts.date.format的消息,则默认采用 DateFormat.MEDIUM格式输出。 看如下jsp代码: <% //生成一个Date实例 java.util.Date  now  =  new  java.util.Date(107,12,23,13,23,24); //将该Date实例设置成一个pageContext里的属性 pageContext.setAttribute("now", now); %> 1> nice = "false",且指定format=“dd/MM/yyyy”<br> <s:date   name="#attr.now"   format="dd/MM/yyyy"  nice=“false”/> <hr><br> 2> nice = "true",且指定format=“dd/MM/yyyy”<br> <s:date  name="#attr.now"   format="dd/MM/yyyy"  nice=“true”/> <hr><br> 3> 指定nice = "true"<br> <s:date   name="#attr.now"    nice=“true”/> <hr><br> 4> nice = "false",且没有指定format<br> <s:date  name="#attr.now"   nice=“false”/> <hr><br> 当没有指定nice=“true”属性,且不指定format属性时,系统将日期格式化成“2008年01月23日”,这是因为在系统的全局国际化资源文件中提供了如下一行: #指定Struts2默认的国际化资源文件 12. datetimepicker  datetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在<head></head>内加一个"<s:head theme="ajax" />",然后可以在form内加上该标签。  (1)、静态构造有初始值的日期输入项  代码  1. <s:datetimepicker name="user.birthday" label="出生日期" value="%{'2008-9-20'}"/>   (2)、动态构造有初始值的日期输入项  代码  1. <s:datetimepicker name="user.birthday" label="出生日期" value="%{date}" displayFormat="yyyy-MM-dd"/>   在给输入项动态赋初始值时,要用ONGL的%{}表达式,而不能用#{}表达式。上面代码中的date变量需在action里有事选定义.  13. debug debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context 中的所有值信息。 使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。 在页面上增加<s:debug/>标签,通过debug标签,可以看的系统中ValueStack离得全部信息,并可以看到Stack Context中的属性。 示范代码: <s:debug></s:debug> //直接在jsp页面上面添加这样的标签,就可以生产一个查看debug信息的链接 14. div  div是struts2 ajax中最基础的标签,其他的标签均和div有关系。div的最大的用途就是可以异步的更新div中的内容。这里写一些div基本的应用,其他的等写别的标签的时候再写。通过例子说明     <s:div href="%{url}">Initial Content</sx:div>     <!--最简单的例子,从指定的url获取信息更新自己的内容-->             <s:div href="%{url}" delay="2000"/>     <!--delay:载入内容前等待的时间,单位毫秒-->         <s:div href="%{url}" highlightColor="red" highlightDuration=""/>     <!--highlightColor:载入内容的背景色 highlightDuration:背景色显示的时间-->         <img id="indicator" src="images/indicator.gif"       style="display:none"/>      <s:div href="%{url}" updateFreq="2000" indicator="indicator"/>     <!--每两秒更新一次。updateFreq为更新时间,单位毫秒。-->     <!--indicator为指示器,当内容未载入的显示的一个gif图片,一般为动态图片--> 15. doubleselect  doubleselect标签输出关联的两个HTML列表框,产生联动效果。 名称 必需 默认 类型 描述 list 是 无 Cellection Map Enumeration Iterator array 要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 listKey   否   无   String   指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用 listValue   否   无   String   指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用 headerKey   否   无   String   设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值 headerValue 否 无 String 显示在页面中header选项内容 emptyOption 否 false Boolean   multiple 否 false Boolean 是否多选 size 否 无 Integer 显示的选项个数,该选项只对第一个列表框起作用 doubleId 否 无 String 指定第二个列表框的ID doubleList   是   无   Cellection Map Enumeration Iterator array 要迭代的集合   doubleListKey   否   无   String   指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用 doubleListValue   否   无   String   指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用 doubleSize 否 无 Integer 选项个数 doubleName 否 无 String 指定第二个列表框的name映射 doubleValue 否 无 Object 第二个列表框的初始选种项 实例: <s:form name="test"> <s:doubleselect label="请选择所在省市"    name="province" list="{'四川省','山东省'}" doubleName="city"    doubleList="top == '四川省' ? {'成都市', '绵阳市'} : {'济南市', '青岛市'}" /> </s:form>   <s:form action="doubleselectTag"> <s:doubleselect         label="请选择所在省市"         name="province"         list="provinces"         listKey="id"         listValue="name"         doubleList="cities"         doubleListKey="id"         doubleListValue="name"         doubleName="city"         headerKey="-1"         headerValue="---------- 请选择 ----------"         emptyOption="true" /> </s:form> 16. else  else标签用来控制基本的条件处理流程,通常和if、elseif标签连用。 参数 名字 是否必须 默认值 可否使用表达式 类型 描述 id 否   是 String 用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性 test 是   是 Boolean 用来决定是否显示标签内部内容的表达式  例子 <s:if test="%{false}"> <div>Will Not Be Executed</div> </s:if> <s:elseif test="%{true}"> <div>Will Be Executed</div> </s:elseif> <s:else> <div>Will Not Be Executed</div> </s:else> 17. elseif  elseif标签用来控制基本的条件处理流程,通常和if、else标签连用。 参数 名字 是否必须 默认值 可否使用表达式 类型 描述 id 否   是 String 用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性 test 是   是 Boolean 用来决定是否显示标签内部内容的表达式  例子 <s:if test="%{false}"> <div>Will Not Be Executed</div> </s:if> <s:elseif test="%{true}"> <div>Will Be Executed</div> </s:elseif> <s:else> <div>Will Not Be Executed</div> </s:else> 18. fielderror  fielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个map类型的属性。 Action类中这样定义: public String execute() throws Exception{... addFieldErrors("field1", "field1 error"); addFieldErrors("field2", "field2 error");...} jsp中输出错误信息: <s:fielderror/> 19. file  文件选择组建 file标签输出一个HTML文件选择框,等价于html代码:<input type="file" .../>。 名称 必需 默认 类型 描述 accept  
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服