struts2中如何传值

我也知道是action属性名和页面名称对应传值,我想问的是这样的,点击查询按钮,后台查出来一个集合,用iterator标签展示在jsp页面上,有name,id,等几个属性... 我也知道是action属性名和页面名称对应传值,我想问的是这样的,点击查询按钮,后台查出来一个集合,用iterator标签展示在jsp页面上,有name,id,等几个属性列,在每一行的行尾有一个“查看”按钮,怎么做才能在点击这个按钮后把这一行的全部或者部分属性值传递到后台,急!!!
应该很容易理解吧,比如人员列表,显示姓名,年龄等几个重要信息,点击查看,浏览详细信息,怎么传值,像你说的传个id,那怎么传?
展开
 我来答
可以叫我表哥
2015-07-09 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464972
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
Struts2传值有几种方式:
1)URL parameter
例如配置代码:
<action name="login_*" class="com.my.action.LoginAction" method="{1}">
<result type="redirectAction" name="success">main?userName=${userName}&password=${password}</result>
<result type="redirect" name="false">login</result>
<result name="input">/pages/Login.jsp</result>
</action>

其中:
main?userName=${userName}&password=${password}
这一句是当调用Action SUCCESS时会把原Action中的username和password两个属性以url parameter形式传给main action
当然,上面main action也可以这样写:
<result name="success" type="redirectAction">
<param name="actionName">main</param>
<param name="userName">${userName}</param>
<param name="password">${password}</param>
</result>

2)request的attribute传值:
例如,可以在一个action中使用attribute传值:
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("userName", getUserName());

当然,先要import page:
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;

ServletActionContext有好些方法,可以得到pageContext、request、session、application等对象来使用。

在Struts2 Action中需要调用Appcalition和Session,需要用到这个引用:
import com.opensymphony.xwork2.ActionContext;

调用方法如:
ActionContext.getContext().getSession().put("username", getUsername());
ActionContext.getContext().getApplication().put("username", getUsername());

如果需要在Action中调用request、response、pageContext,需要引用:
import org.apache.struts2.ServletActionContext;

调用方法:
ServletActionContext.getPageContext() ...
ServletActionContext.getRequest() ...
ServletActionContext.getResponse() ...
风中浪人
2012-07-03 · TA获得超过141个赞
知道答主
回答量:135
采纳率:33%
帮助的人:40.7万
展开全部
给每一个行的ID设置为对象ID然后,通过js传入后台假如后台传出对象集合为List<Student> studentList,Student有3个属性,Id,name,age这里用jquery来传值
<table >
<s:iterator value="studentList">
<tr id="<s:property value="id"/>">
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:propery value="age"/></td>
<td id="check">查看</td>
</tr>
</s:iterator>
</table>
<script>
----导入jquery包
<script type="text/script">
$(function(){
$("#check").click(function(){
var $id=$("table tr.checked").attr("id");
window.location.href="这里后台action?id="+$id

})
})
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Dubbo调试工具
2012-07-03 · TA获得超过303个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:102万
展开全部
<s:iterator value="roleList">
<tr>
<td>
<s:property value="id" />
</td>
<td>
<s:property value="name" />
</td>
<td>
<s:property value="detaile" />
</td>
<td>
<s:url action="Role_del" namespace="/role" var="url">
<s:param name="role.id" value="id"></s:param>
</s:url>
<s:url action="Role_updateInput" namespace="/role" var="url2">
<s:param name="role.id" value="id"></s:param>
<s:param name="pagesize" value="pagesize"></s:param>
<s:param name="currentpage" value="#parameters.currentpage"></s:param>
</s:url>
<s:if test="id!=1">
<s:if test="#session.user.account=='ajtdnyy'">
<s:if test="detaile!='已删'">
<s:a href="%{url}" onclick="javascript:return confirm('确认删除?')">删除</s:a>
</s:if>
</s:if>
<s:a href="%{url2}">查看</s:a>
</s:if>
</td>
</tr>
</s:iterator>

以上这个例子是通过Iterator迭代每条记录生成相应链接,通过URL提交数据到后台执行删除等操作,你也可以通过form提交,不同按钮提交不同的id值,通过点击按钮时给提交的input赋值。(<input type='hidden' name='id'/>)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友46b235f5b2
2012-07-03 · TA获得超过1397个赞
知道小有建树答主
回答量:676
采纳率:100%
帮助的人:620万
展开全部
什么业务?居然会这样?从后台读取出来一个列表,然后又把这个对象传到后台?
从来没这样做过。
既然这样,为什么不直接传一个ID进去,再查询出来?根据ID来查询一条记录,效率上
不会有多大影响的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式