feng

飘逸~~~~~life

struts2.0表单提交带参数问题

今天在学习的时候,碰到了这个问题,不知道怎么搞定了,也就是在提交表单的时候另外传递一个参数过去,这个参数不是那些<s:textfield><s:textarea>里面的东西,比如要编辑一篇新闻,原来转过来了这个新闻对应的编号,
类似这样
int idd=(null==request.getParameter("id")?1:(Integer.parseInt(request.getParameter("id"))));
目的是根据这个把需要编辑的新闻里面的东西读出来编辑
然后编辑好新闻,提交表单的时候又需要把这个idd也传过去,也就是还需要根据这个来更新哪条新闻,但是遇到了问题
<s:form action="editnews.action?id=<%=idd%>"validate="true">
我发现这样编译后变成了
<form namespace="" id="editnews" onsubmit="return validateForm_editnews();" action="editnews.action?id=&lt;%=idd%&gt;" method="post">
问题就出现了  原来的<%=idd%>  被换成了  &lt;%=idd%&gt;,而不是我需要的具体的值,原来可以不用<s:form>而直接用〈form> 但是我又用了struts2的validation验证,需要<s:form>
希望有人知道的指导!!!怎么实现传这个参数 谢谢!


我自己今天想出了一个方法,以前了解过隐藏域这个东西,查了下,struts2标签也确实提供了这样的东西 <s:hidden>   可以把这个ID存在里面
先换成STRING类型的数据
  int idd=(null==request.getParameter("id")?1:(Integer.parseInt(request.getParameter("id"))));
  String dd=""+idd;
添加一个
<s:hidden name="id" value="<%=dd%>"></s:hidden> 测试发现数据得到了! 大家有什么更好的方法请指教!

posted on 2007-11-03 15:52 feng 阅读(8710) 评论(10)  编辑  收藏

Feedback

# re: struts2.0表单提交带参数问题[未登录] 2007-11-03 23:19 Thinker

隐藏域是正解,
不过你可以查查Struts2的源代码看看解析标签form的action时是如何处理的,再看看还有没有另外取值的方式,不用<%=%>这种形式。  回复  更多评论   

# re: struts2.0表单提交带参数问题 2007-11-04 15:41 feng

自己发现提交后,对于的action类的必须提供id的 setter和getter方法,否则得不到正确的数据!  回复  更多评论   

# re: struts2.0表单提交带参数问题 2007-12-31 16:59 张君华

关于表达式语言变成了对应的转义字符的问题我想是struts2.0中的一个bug吧。因为我们直接用jsp的标签是不会出现这样的问题的。
你既然用了struts2.0的标签为何不用<s:param/>标签传参呢  回复  更多评论   

# re: struts2.0表单提交带参数问题[未登录] 2008-01-08 00:53 Neptune

<s:form action="editnews.action?id=<s:property="idd"/> "validate="true">

这样试试,然后用ServletActionContext.getRequest().getAttribute("idd")
来取值  回复  更多评论   

# re: struts2.0表单提交带参数问题 2008-08-27 09:38 yin

我原来用STRUTS1的时候一般传不显示的参数也是用hidden,然后在ACTION里 通过 request.getParameter("name")来得到的.但是STRUTS2.0就没有用过了.楼住说的,2.0也应该支持HIDDEN标签的.  回复  更多评论   

# re: struts2.0表单提交带参数问题 2008-08-29 12:47 隔叶黄莺

曾看过一个项目经理在项目内部下一条死命令,绝对不允许在 JSP 中写 Java 代码,我想这完全能实现的,也不失去其灵活性的。

楼主可以做的更规范一些。  回复  更多评论   

# re: struts2.0表单提交带参数问题[未登录] 2008-09-03 18:21 Bright

<s:url id="url1" action="editnews">
<s:param name="idd" value="'<%=dd%>'" />
</s:url>
<s:form action="${url1}">
</s:form>  回复  更多评论   

# re: struts2.0表单提交带参数问题 2008-11-19 19:37 阿道夫

楼主有没有搞错 根本实现不了  回复  更多评论   

# re: struts2.0表单提交带参数问题 2009-07-30 18:32 carft

@阿道夫
根本不可能实现的,value属性根本不支持任何表达式,你所谓的${},或者<=% %>这两种方式根本不可以,,如果你用%{}得到的只有null,不过我也不知道怎么解决,不然我也不来看帖子了,哈哈
  回复  更多评论   

# re: struts2.0表单提交带参数问题[未登录] 2009-10-12 16:55 wds

谁说不可以的,我也得到需要的参数了呀 不过用${}方法只能得到null  回复  更多评论   



只有注册用户登录后才能发表评论。


网站导航: