2010-10-26 170 views
1

我正在對基於Struts1的現有Web應用程序進行更改 - 它已經由各種形式的&操作組成。Struts - 需要進行哪些更改才能添加新的JSP?

我所試圖做的是

  • 添加了幾頁爲移動版本的網站。
  • 例如,我想用一個提交按鈕添加一個JSP頁面,其中包含一個帶有幾個 字段的表單(與PC 版本中的相同)。在 提交中,我想調用與處理PC 版本中的表單相同的 ACTION類。

這可能嗎?請指出任何解釋上述內容的鏈接。


EDIT1:

從我的struts-config.xml動作映射幾行。

<action path="/signupPC" 
      name="signupPCForm" 
      validate="true" 
      input="/signupFailedPC.jsp"> 
     <forward name="success" path="/signupSuccessPC.jsp" /> 
     <forward name="failure" path="/signupFailedPC.jsp" /> 
    </action> 


@Nathan 如何添加這裏移動特定頁面 ?

我應該在這裏添加一個新的動作 path =「/signupMobile」? - 這意味着添加< html:form action =「/ signupMobile.do」 method =「post」>我的手機jsp?

我希望我不必添加一個新的表格bean因爲我想利用 相同的Form.java意味着基於PC的版本。

回答

1

在你的struts-config中你有一組動作映射元素。對於每個actionMapping,你有一個或多個前向元素。每個forward都將應用中的相對url映射到一個字符串。將特定於移動設備的轉發添加到操作映射中。 ActionMapping爲該映射的每個轉發都有一個條目,您可以通過struts-config中給出的字符串標識符來查找它們。然後,在你的Action中,你需要根據動作是從PC的url還是移動url調用,從ActionMapping中取出正確的ActionForward。

+0

謝謝@Nathan - 你能舉個例子嗎?我對struts很陌生。 – 2010-10-26 16:24:54

+1

@Van de Graff:將此答案更改爲更簡單的方法。看看你的web應用程序,看看你是否認識到我正在談論的部分。 – 2010-10-26 17:05:54

2

內森告訴你一切你需要知道的,我只是將我怎麼會寫在struts-config文件的例子:

<action path="/signup" 
     name="signupForm" 
     validate="true" 
     input="/signup.jsp"> 
     <forward name="successPC" path="/PC/signupSuccess.jsp" /> 
     <forward name="failurePC" path="/PC/signupFailed.jsp" /> 
     <forward name="successMobile" path="/mobile/signupSuccess.jsp" /> 
     <forward name="failureMobile" path="/mobile/signupSuccess.jsp" /> 
</action> 

你會調用java類的同樣的動作(方法),並根據調用該方法的設備,您將轉發PC成功或移動成功網頁。

+0

謝謝@卡洛斯。 ** input =「/ signup.jsp」**?不應該指定**移動版本**嗎? ** name =「signupForm」**這裏是指用於** MOBILE和PC版本**的FORM bean ** - 是嗎? – 2010-10-27 13:20:08

+1

嗯,我添加了輸入,因爲你在你的例子中有它。我相信我從未用過我的任何行動,但我無法確定。與第二個問題相關:是的,它指的是您創建的Java表單bean,只要PC和移動設備的行爲相同,它就應該是相同的。 – 2010-10-27 13:36:29

相關問題