2014-07-01 54 views
1

假設我要創建Struts表單輸入ActionForm的投入,所以我的struts-config會喜歡這樣的:的Struts 1:從任何動作類

<form-bean name="myForm" type="com.MyForm" /> 


<action path="/entryyourinputs" 
    type="com.MyAction" name="myForm" 
    input="/myJsp.jsp"> 

    <forward name="success" path="/regSuccess.jsp" /> 
</action> 

它會顯示myJsp來分配myForm的。
我的問題是如何在myAction中分配myForm而不是myJsp ?.
或者從MyAction分配一些myForm輸入的方法是什麼?

問候
感謝

+0

我不太明白這個問題。 input屬性是頁面(例如JSP或Tile def),而不是表單bean。我還建議在WEB-INF下放置JSP頁面來禁止直接訪問客戶端。 –

+0

對於我的低質量問題感到抱歉。我意識到我只是創建getter和setter來通過MyAction訪問myForm。其實,我只是想創建一些由URL參數輸入的表單,而不是通過JSP頁面中的輸入GUI(所以我不需要JSP)。 – smftr

回答

1

在com.MyForm我們需要爲輸入,比如創建getter和setter方法如下:

String input; 
public String getInput() {return this.input;} 

public void setInput(String input) {this.input = input;} 

在它擴展Struts Action類MyAction,我們賦值到MyForm輸入如下:

public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) { 
    MyForm myForm = (MyForm) form; 
// assigning values to the inputs from action 
    myForm.setInput("input value"); 

..... 
..... 
..... 
} 

獲取jsp中的值我們必須使用HTML標記庫:

JSP代碼看起來像下面的代碼:

<html:form action="/entryyourinputs"> 
    <html:text name="myForm" property="input" /> 
</html:form> 

注:HTML標籤必須**<html:form>**標籤內。

在jsp中輸入fileds由於控制器的原因,在MyAction類中分配的值自動分配給jsp輸入字段。