我有一个带有表单的JSP文件。该表单包含一个选择下拉菜单
<s:select label="Make a selection" headerKey="-1" headerValue="Select Option" list="stuff" name="books" />
现在,为了填充选择菜单,我创建了一个java文件来做到这一点。我还创建了一个SelectAction
,它将填充菜单并使表单的操作指向SelectAction
在我的.xml文件中,我调整了它,因此它包含用于填充的操作选择然后重定向到将处理表单的操作
XML文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="example" namespace="/example" extends="struts-default">
<action name="SelectAction" class="example.SelectAction">
<result type="redirectAction">
<param name="ActionName">AddSubmitAction</param>
<param name="namespace">/example</param>
</result>
</action>
<action name="AddSubmitAction" class="example.AddSubmittAction">
<result type="chain">
<result>/example/addOrder.jsp</result>
</result>
</action>
</package>
</struts>
我在xml中尝试做的是首先使用SelectAction(因此选择菜单填充)然后将其重定向到AddSubmitAction,它将处理表单输入。
但是,这不起作用。我收到调度程序未找到错误。我的方法不正确吗? redirectAction在这里被误用了吗?
答案 0 :(得分:0)
操作名称的参数区分大小写
<param name="actionName">AddSubmitAction</param>
答案 1 :(得分:0)
填充的最佳方式您选择的标记值是制作准备方法。当你的动作类被调用时,prepare方法总是先调用。
所以在你的一个Action类中make make method:
public void prepare(){
//set your list here
}
您还可以为动作类中定义的每个方法定义prepare方法:
如果你的方法是
public String execute(){
}
然后你的准备方法应该是
public void prepareExecute(){
并在您的操作类中实现Preparable接口。
进一步阅读:prepare interceptor