struts2 标签

 

a标签创建一个HTML超链接,等价于HTML 的<a  href=""....

示范代码:

<s:a href="login.action">登陆</s:a>

 

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。

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值