2010-10-26 107 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

相关问题