如果没有表单,如何将值传递给Struts 2中的操作?

时间:2013-04-05 13:36:36

标签: java struts2 action-mapping

我写了一个这样的提交按钮:

<s:submit type="button" value="Delete" action="%{notesDeleteUrl}" theme="simple"/>

我已经定义了这样的网址。

<s:url value="notesDeleteAction.action" id="notesDeleteUrl" >
<s:param name="noteId"><s:propertyvalue="iNote" />    </s:param>                                   
</s:url>

所以基本上,我没有&lt; s:表格&gt;在我的JSP上标记,但我需要在向其传递值时使用提交按钮调用操作。我得到了这个错误。

  • 没有映射名称空间[/]的动作和与上下文路径[/ abc]相关联的动作名称[notesDeleteAction?noteId = 48]。

所以我理解由于添加了参数,它无法解决操作,但我怎样才能将此值发送给操作?

1 个答案:

答案 0 :(得分:0)

您的错误与参数无关。 Struts不知道如何处理URL / notesDeleteAction

您需要在struts.xml文件中包含该操作:

<package name="yourpackage" namespace="/" extends="struts-default">
  <action name="notesDeleteAction" class="foo.YourClass">
    <result>somepage.jsp</result>
  </action>
</package> 

有两种方法可以在你的类中获取参数foo.YourClass

一种方法是:

Map parameters = ActionContext.getContext().getParameters();

另一种方法是让你的类实现org.apache.struts2.interceptor.ParameterAware