2013-10-06 84 views
1

我有一個帶有表單的JSP文件。表單包含一個選擇下拉菜單填充Struts 2選擇菜單和重定向動作

<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

參數動作名稱是區分大小寫的

<param name="actionName">AddSubmitAction</param> 
0

來填充您的選擇標記值最好的辦法是做準備的方法。當你的動作類被調用時,prepare方法總是先調用。

在一個Action類

所以要準備方法:

public void prepare(){ //set your list here }

您還可以定義每個方法制備方法定義的Action類: 如果你的方法是 public String execute(){ }

然後你的準備方法應該是 public void prepareExecute(){ 並在你的action類中實現Preparable接口。

如需進一步閱讀:prepare interceptor