如何使用Struts 2中的action,方法通过post提交值

时间:2009-09-07 17:07:21

标签: jsp struts2

我有一个问题,但我无法找到解决问题的方法。

<s:form name="form1" method="post" action="products" theme="simple">
  <s:hidden name="code" value="%{code}"/>
  <s:submit type="button" name="method:selectSale" value="goPage"/>
</s:form>

此代码没有问题。

但是,我想用“锚”而不是“提交”标签。我只想使用超链接和'post'方式,而不是'get'。我怎样才能做到这一点?

<s:form name="form1" method="post" action="products" theme="simple">
  <s:hidden name="code" value="%{code}"/>
  <a href="#" onclick="javascript:document.form1.submit()">goPage</a>
</s:form>

它不起作用。

主要问题是如何获得“方法:selectSale”。

在struts.xml中,

<action name="products" class="sample.ProductsAction">
  <result>abc.jsp</result>
</action>

然后,在ProductsAction.java中,

public String selectSale() throws Exception {
  // ~~~
  return "selectSale"
}

好的,现在,我有一个问题。

我必须在哪里放"selectSale"代码? (使用<s:a><a:>

4 个答案:

答案 0 :(得分:0)

简单的方法是在表单上设置ID属性,并在锚点的onclick中使用document.getElementById(formID).submit()。

答案 1 :(得分:0)

action="products?method:selectSale"

答案 2 :(得分:0)

我们走了

 <s:url action="abc" method="mymethod"></s:url>

如果你想传递一些查询字符串参数,可以随时使用<s:param>

<s:url action="abc" method="mymethod"> 
   <s:param name="id" value="%{myvalue}" />
</s:url>

这是一个struts2标记的内置版本,它将解析你的struts配置文件中定义的URL和方法

将struts配置文件定义为

<action name="products" class="sample.ProductsAction" method=mymethod>
  <result>abc.jsp</result>
</action>

希望它能帮助你

答案 3 :(得分:0)

第1步

将struts.xml中的操作定义更改为:

<action name="products" class="sample.ProductsAction" method="selectSale">

第2步

我猜你的javascript中可能会遇到以下错误之一:

Submit is not a function in js

http://forums.hscripts.com/viewtopic.php?f=8&t=3268

"Submit is not a function" error in JavaScript

虽然三者都指向同一解决方案。现在,只需在</s:form>之外定义锚标记,并确保没有name=submit的元素

如果仍然无效,请将javascript更改为

document.forms["form1"].submit();