<action name="Log*" method="loginFrame{1}" class="member.loginIndeAct">
<result>${tplPath}</result>
<result name="logout" type="redirectAction">
<param name="namespace">/jeecms</param>
<param name="actionName">LoginFrameInput</param>
</result>
</action>
一、这里的action 是Log,他包含了登陆和退出,当系统在登录的时候就直接返回${tplPath}就可以了;在退出的时候需要返回到登陆页面,所以退出的时候是转发到 action的,转发到action肯定要告诉系统转发到那个action,该action的namespace是什么,名字是什么,就是通过param 该属性老告知struts2的;当然param还有其他用法,不过一般就用这个就差不多了,综上得出:
param标签主要用于为其他标签提供参数,例如bean和include标签,起到注入的作用
param参数设置:
name:可选属性,指定设置参数名称
value:可选属性,指定参数的值
id:可选属性,指定该元素引用id
二、param是传递参数标签,他是用来为其他标签提供参数的,比如<s:include>。他的name属性用来指定参数的名称,value属性用来指定参数值,但是value不是必须的,也可以用text文本来表示参数值。<param name="color" value="red' />
利用param传递集合
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport {
private String foo;
private List<String> myList;
public String my() {
return SUCCESS;
}
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
public List<String> getMyList() {
return myList;
}
public void setMyList(List<String> myList) {
this.myList = myList;
}
}
配置文件
...
<action name="my" class="com.My" method="my">
<param name="foo">fooValue</param>
<param name="myList">??</param>
<result>/my.jsp</result>
</action>
...
一、方法
<action name="my" class="com.My" method="my">
<param name="foo">fooValue</param>
<param name="myList">[value1][value2]</param>
<result>/my.jsp</result>
</action>
...
然后重写 setter 方法:
StringUtils.substringsBetween(myList, "[", "]");
二、方法
可以用自己编写TypeConverter的方法。缺点是要写比较多的代码,还要配置conversion.properties文件。优点是可提高Action代码重用性。