struts2.0 的action标签使用

来源:互联网 发布:java 可变。string 编辑:程序博客网 时间:2024/05/20 06:51

使用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。

0 0
原创粉丝点击