Struts2 标签详解 详细的说明了struts2所有标签
由web-tag.net整理
版权属web-tag.net 以及 原作者。
由于标签太多难做目录索引,如果你觉得有目录索引更好,请到
http://code.google.com/p/myjdemo/downloads/list 下载CHM版本的Struts2标签详解,谢谢。 a
a标签创建一个HTML超链接,等价于HTML 的 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 \ }
public String login() throws Exception {
ServletActionContext.getRequest().setAttribute(\ return \ } }
上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action。代码如下
..............
上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过标签来调用这两个逻辑Action,部分jsp代码如下: 下面调用第一个Action,并将结果包含到本页面中。 下面调用第二个Action,并将结果包含到本页面中。
阻止本页面请求参数传入Action
下面调用第二个Action,且不将结果包含到本页面中。
上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action。 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=\ <%@taglib prefix=\
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=\ <%@taglib prefix=\
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(\ myList1.add(\ myList1.add(\
myList2 = new ArrayList(); myList2.add(\ myList2.add(\ myList2.add(\
myList3 = new ArrayList(); myList3.add(\ myList3.add(\ myList3.add(\
return \ }
public List getMyList1() { return myList1; } public List getMyList2() { return myList2; } public List getMyList3() { return myList3; }
标签使用
bean
bean标签 用于创建一个JavaBean的实例。创建JavaBean实例时,可以在标签体内使用标签为该JavaBean实例 传入属性,要使用这个标签,需要为该
JavaBean类提供对应的setter方法。如该JavaBean类提供了对应的getter方法,我们就可以访 问对应的属性。 bean标签 的属性:
name: 必填,指定要实例化的JavaBean的实现类
id: 可选。如指定了该属性,则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。