Struts2 标签详解
详细的说明了struts2所有标签
web-tag整理
版权属web-tag 以及 原作者。
由于标签太多难做目录索引,如果你觉得有目录索引更好,请到le/p/myjdemo/downloads/list 下载CHM版本的Struts2标签详解,谢谢
 a 
a标签创建一个HTML超链接,等价于HTML <a  href=""....
示范代码:
<s:a href="login.action">登陆</s:a>
 action 
使用action标签 可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Actionname以及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;
    //authorgetset的方法,省略……
    public String execute() throws Exception
    {
        return  "done";
    }     
    public String login() throws Exception
    {
        Request().setAttribute("author",getAuthor());
        return "done";
    }
}
上面的Action类包含两个处理逻辑,可以在position标签属性l文件中通过指定method属性来将该Action类映射成两个逻辑Action。代码如下
<package  name="lee" extends="struts-default">
    <!--定义第一个Action,使用lee.TagActionexecute方法作为处理逻辑-->
    <action name="tag1"  class="lee.TagAction">
        <result name="done">succ.jsp</result>
    </action>
    <!--定义第二个Action,使用lee.TagActionlogin方法作为处理逻辑-->
    <action  name="tag2"  class="lee.TagAction"  method=“login”>
        <result  name="done" > loginSucc.jsp </result>
    </action>
    ..............
</package>
上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过</>
标签来调用这两个逻辑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
 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>
 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>
 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>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。