param标签的作用

<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代码重用性。


你可能感兴趣的:(param标签的作用)