我有一个带有表单的JSP文件。该表单包含一个选择下拉菜单
<s:select label="Make a selection" headerKey="-1" headerValue="Select Option" list="stuff" name="books" />现在,为了填充select菜单,我创建了一个java文件来执行此操作。我还创建了一个将填充菜单的SelectAction,并使表单的操作指向SelectAction
在我的.xml文件中,我对其进行了调整,使其包含填充Select然后重定向到将处理表单的操作的操作
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,它将负责表单输入。
然而,这是不起作用的。我得到一个dispatcher not found错误。我的方法是不正确的吗?这里是否滥用了redirectAction?
发布于 2013-10-07 14:50:06
填充select标记值的最好方法是创建prepare方法。当您的action类被调用时,prepare方法总是首先被调用。
因此,在您的一个Action类中,生成prepare方法:
public void prepare(){ //set your list here }
您还可以为操作类中定义每个方法定义准备方法:如果您的方法是public String execute(){ }
那么您的prepare方法应该是public void prepareExecute(){,并在您的操作类中实现Preparable接口。
更多内容请阅读:prepare interceptor
https://stackoverflow.com/questions/19210928
复制相似问题