1、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. fi
2、le 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 3
3、0 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 的登陆
4、 2.action 使用action标签 可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。如果指定 了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。 action标签的属性: id: 可选属性,该属性将会作为该Action的引用ID name: 必填属性,指定该标签调用哪个Action namespace: 可选,指定该标签调用的Action所在的namespace. executeResult: 可选,指定是否要将Actio
5、n的处理结果页面包含到本页面。默认是false,即不包含 ignoreContextParams: 可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。 下面是本示例应用中的Action类,包含连个处理逻辑。代码如下 public class TagAction extednds ActionSupport { //封装用户请求参数的author属性 private String author; //author的get和set的方法,省略…… public String e
6、xecute() throws Exception { return "done"; } public String login() throws Exception { ServletActionContext.getRequest().setAttribute("author",getAuthor()); return "done"; } } 上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑
7、Action。代码如下
8、"tag2" class="lee.TagAction" method=“login”>
9、 executeResult=“true” />
下面调用第二个Action,并将结果包含到本页面中。 10、 value="#attr.author"/>
上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action。
3. actionerror
这个标签负责输出错误信息到客户端,例子如下:
Action代码如下:
package lee;
import com.opensymphony.xwork2.ActionSupport;
public class DemoAction extends ActionSupport
{
@Override
publ 11、ic String execute()
{
addActionError("第一条错误消息!");
addActionError("第二条错误消息!");
return SUCCESS;
}
}
JSP页面代码如下:
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
12、actionmessage
这个标签负责输出提示信息到客户端,例子如下:
Action代码如下:
package lee;
import com.opensymphony.xwork2.ActionSupport;
public class DemoAction extends ActionSupport
{
@Override
public String execute()
{
addActionMessage("第一条普通消息!");
addActionMessage("第二条普通消息!");
return SUCCESS;
}}
JSP 13、页面代码如下:
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
阻止本页面请求参数传入Action
14、结果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");
15、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 Li
16、st getMyList1() { return myList1; }
public List getMyList2() { return myList2; }
public List getMyList3() { return myList3; }
标签使用
17、iterator value="%{#myAppendIterator}">
18、则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。 【!!注意: 在bean标签内时,bean标签创建的JavaBean实例放在valuestack的栈顶,该标签结束,生成的子集被移出valuestack栈。除非指定了id属性】 下面是个简单的JavaBean public class Person { private String name; private int age; //getter和setter方法省略 ……} 在jsp页面中的代码:
19、使用bean标签创建一个lee.Person类的实例-->
20、
21、l="性别" name="user.sex" value="true" fieldValue="dddd"/>
这里value的值是“假”值,fieldValue的值才是真值。当value="true"表示这个复选框被选上。为false时不选上
另外,它在向html转换后会多出一个隐藏域,很奇怪。上面的代码输出成html是这样的:
代码
1.
2. 22、dden" name="__checkbox_user.sex" value="dddd" />
8.checkboxlist
复选框
名称
必需
默认
类型
描述
fieldValue
是
true
String
指定在复选框选中时,实际提交的值
复选框组,对应Action中的集合
名称
必需
默认
类型
描述
list
是
无
Cellection M 23、ap Enumeration Iterator array
要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容
listKey
否
无
String
指定集合对象中的哪个属性作为选项的value
listValue
否
无
String
指定集合对象中的哪个属性作为选项的内容
例子:checkboxlistTag.jsp
<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib p 24、refix="s" uri="/struts-tags" %>
25、
<%@ page contentType="text/html; charset=GBK" language="java"%>
<%@taglib prefix="s" uri="/struts-tags"%>
使用s:combobox生成下拉输入框
26、
27、istKey和listValue属性。 10. conponent conponent标签用于使用自定义标签,因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性: theme:自定义组件所使用的主题,默认使用xhtml主题。 templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。 template:指定自定义组件所使用的模板。 此外,还可以component标签中使用param标签来注入参数的值。例子如下: <%@ page contentType="text/html; chars
28、et=GBK" language="java"%> <%@taglib prefix="s" uri="/struts-tags"%>
29、 template="ftlCustomTemplate">
31、义主题,自定义主题目录
从/WEB-INF/classes路径下加载模板,使用ftl模板。
32、ftl代码如下:
34、属性和format属性不同时指定,(不指定nice属性时,该属性值为false)。因为指定nice为true,代表输出指定日期和当前时刻的时差;指定format属性,则表明将指定日期按format指定的格式来个格式化输出。 如果即没有指定format,也没指定nice=“true”,则系统会到国际化资源文件中寻找key为struts.date.format的消 息,将该消息当成格式化文本来格式化日期。如果无法找到key为struts.date.format的消息,则默认采用 DateFormat.MEDIUM格式输出。 看如下jsp代码: <% //生成一个Date实例 java.u
35、til.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”
2> nice = "true",且指定format=“dd/MM/yyyy”
36、
3> 指定nice = "true"
4> nice = "false",且没有指定format
当没有指定nice=“true”属性,且不指定format属性时,系统将日期格式化成“2008年01月23日”,这是因为
37、在系统的全局国际化资源文件中提供了如下一行: #指定Struts2默认的国际化资源文件 12. datetimepicker datetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在
内加一个"38、输入项
代码
1.
39、d。
在页面上增加
40、ent
41、"indicator" src="images/indicator.gif" style="display:none"/>
42、 默认 类型 描述 list 是 无 Cellection Map Enumeration Iterator array 要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 listKey 否 无 String 指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用 listValue 否 无 String 指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用 headerKey
43、 否 无 String 设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值 headerValue 否 无 String 显示在页面中header选项内容 emptyOption 否 false Boolean multiple 否 false Boolean 是否多选 size 否 无 Integer 显示的选项个数,该选项只对第一个列表框起作用 doubleId 否 无 String 指定第二个列表框的ID doubleList 是 无 Ce
44、llection Map Enumeration Iterator array 要迭代的集合 doubleListKey 否 无 String 指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用 doubleListValue 否 无 String 指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用 doubleSize 否 无 Integer 选项个数 doubleName 否 无 String 指定第二个列表框的name映射 doubleValue
45、否
无
Object
第二个列表框的初始选种项
实例:
47、 emptyOption="true" />
48、
49、n
用来决定是否显示标签内部内容的表达式
例子
50、一个map类型的属性。
Action类中这样定义:
public String execute() throws Exception{...
addFieldErrors("field1", "field1 error");
addFieldErrors("field2", "field2 error");...}
jsp中输出错误信息:






