填充Struts 2选择菜单并重定向操作

时间:2013-10-06 16:09:18

标签: java forms jsp struts2 xml-configuration

我有一个带有表单的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在这里被误用了吗?

2 个答案:

答案 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