使用Struts2 的result 传递参数

1.当使用type=“redirectAction” 或type=“redirect”提交到一个action并且需要传递一个参数时。这里是有区别的:
使用type=“redirectAction”时,结果就只能写Action的配置名,不能带有后缀:“.action”

 

 

2.在Action中定义:
private User user;

user有get/set方法。

EL取值
${user.username}

struts2取值:
<s:property value="user.username" /> //从 ValueStack中取值

<s:property value="#user.username" /> //从 Request中取值

 

Map sessionMap = ActionContext.getContext().getSession();
            sessionMap.put(
"qi", qi);

 

 

3.

public class LoginAction extends ActionSupport {

 private User user;
 
 //用于保存请求重定向到的action的名字
 private String nextAction;

 public User getUser() {
  return user;
 }

 public void setUser(User user) {
  this.user = user;
 }

 public String getNextAction() {
  return nextAction;
 }

 public void setNextAction(String nextAction) {
  this.nextAction = nextAction;
 }

 @Override
 public String execute() throws Exception {
  System.out.println("***************** "+user.isManager());
  //如何把user的manager传入的字符转换成boolean类型?
  if(user.isManager())
   nextAction="manager";
  else
   nextAction="employee";
  
  return SUCCESS;
 }
}

<action name="login"
   class="act.LoginAction">
   <result type="redirectAction">${nextAction}?name=${user.name}</result>
   <!-- LoginAction里的属性值name传到nextAction ,传递中文出现乱码-->
   </action>

<action name="employee"
   class="act.EmployeeAction">
   <result>/result.jsp</result>
   </action>

 

<table border="1">
     <s:form action="/loginns/login.action">
      <tr>
       <td><s:textfield name="user.name" label="用户名" cssStyle="width:120px;"></s:textfield></td>
      </tr>
      <tr>
       <td><s:password name="user.password" label="密码" cssStyle="width:120px;"></s:password></td>
      </tr>
      <tr><!-- 传入的值如果不是true,其它的都转换成false -->
       <td><s:radio name="user.manager"  value="false" list="#{true:'是',false:'否'}" label="是否管理员"></s:radio></td>
      </tr>
      <tr>
       <td align="center"><s:submit value="登陆"></s:submit></td>
      </tr>
     </s:form>
    </table>

 

${param.name }(el)美元符号是El表达式
    <s:property value="#parameters.name"/>(ognl)这个是OGNL来获取值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值