java – 如何在Struts 2动作重定向中拥有动态参数名称?
发布时间:2020-12-15 02:24:49 所属栏目:Java 来源:网络整理
导读:所以我正在尝试创建一个具有动态参数名称和值的动作重定向.我理解如何在struts.xml文件中为参数值执行此操作,但似乎无法正确评估参数名称的内容. action name="SaveObject" method="save" class="com.mysite.actions.ObjectAction" result name="success" ty
所以我正在尝试创建一个具有动态参数名称和值的动作重定向.我理解如何在struts.xml文件中为参数值执行此操作,但似乎无法正确评估参数名称的内容.
<action name="SaveObject" method="save" class="com.mysite.actions.ObjectAction"> <result name="success" type="redirectAction"> <param name="actionName">${actionName}</param> <param name="${paramName}">${paramValue}</param> </result> </action> 现在${actionName}和${paramValue}我绝对没有问题. actionName,paramValue和paramName都在ObjectAction中具有适当的getter / setter命名. 有谁知道如何正确评估${paramName}?它当前在URL中显示为“${paramName}”,我需要它作为paramName变量的值.由于我对OGNL的误解,我尝试使用#paramName和%{paramName},并且它们在URL中也显示不正确.我也试过添加一个parse = true参数,但我相信Struts 2无论如何都是默认的. 解决方法
这是工作.
<action name="login" class="com.common.LoginAction" > <result name="success" type="redirectAction"> <param name="actionName">${actionName}</param> <param name="${paramName}">${paramValue}</param> </result> </action> 在LoginAction.java中 package com.common; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = -1449554101273745861L; private String paramName; private String actionName; private String paramValue; public String execute(){ paramName="id"; setParamValue("1"); setActionName("home"); return SUCCESS; } public void setParamName(String paramName) { this.paramName = paramName; } public String getParamName() { return paramName; } public void setParamValue(String paramValue) { this.paramValue = paramValue; } public String getParamValue() { return paramValue; } public void setActionName(String actionName) { this.actionName = actionName; } public String getActionName() { return actionName; } } 给网址 http://localhost:8080/ProjectName/home.action?id=1 现在在HomeAction.java中 package com.common; import com.opensymphony.xwork2.ActionSupport; public class HomeAction extends ActionSupport{ private static final long serialVersionUID = -127700165200747324L; private int id; public String execute(){ return SUCCESS; } public void setId(int id) { this.id = id; } public int getId() { return id; } } 和 <action name="home" class="com.common.HomeAction" > <result name="success">Home.jsp</result> <result name="error">index.jsp</result> <result name="input">index.jsp</result> </action> 在Home.jsp中 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="/struts-tags" prefix="s" %> id=${id}<br/> 给出输出 id=1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 多线程 – Synchronize()挂起线程
- java – Mono.AndroidTools.InstallFailedExcept
- Java下通过发送http post请求的代码
- java--split,index,StringTokenizer比较
- java – 无法在JSON输出中获取JPA实体ID
- java – Apache Derby:实现’SELECT INTO’行为
- java-Https WebService消息:消息不包含有效的Se
- Java OpenSSL生成的RSA公私钥进行数据加解密详细
- java – 具有log n复杂度的外部循环的两个依赖循
- java – 将大小设置为TreeSet
热点阅读