Spring mvc包括一个单一的形式'对于不同的c:url

时间:2015-02-10 14:13:45

标签: spring jsp spring-mvc

我正在开发一个spring-mvc应用程序。在应用程序中,有各种类型的事件,用户可以注册。至于注册,有一个标准的公式,其中包括firstName,email,address等详细信息。我只是给出不同的c:url值,具体取决于它是哪个事件。 我想知道是否可以在另一个jsp文件中包含表单(不是c:url部分),只需调用jsp:include。这对我很有用,因为当需要对表单进行样式设置,更新等时,我只需要更新一个文件。我包括表单的外观。请看看。感谢

eventregistration.jsp:

  <c:url var="addAction" value="/student/add/seminar-e-commerce" ></c:url>
            <form:form class="seminar-form" action="${addAction}" commandName="students">
                <table>
                    <form:hidden path="studentid"/>
                    <label>Firstname/LastName <span class="color-red">*</span></label>
                    <form:input path="firstname" type="text" class="span6 border-radius-none" />
                    <span>   </span>
                    <form:input path="lastname" type="text" class="span6 border-radius-none pull-right" />

                    <label>Email-Address <span class="color-red">*</span></label>
                    <form:input path="emailadress" type="text" class="span12 border-radius-none" />


                    <label>Street Name/Number <span class="color-red">*</span></label>
                    <form:input path="address1" type="text" class="span10 border-radius-none" />
                    <span> </span>
                    <form:input path="address2" type="text" class="span2 border-radius-none pull-right" />


                    <label>City/PLZ <span class="color-red">*</span></label>
                    <form:input path="city" type="text" class="span10 border-radius-none" />
                    <span> </span>
                    <form:input path="plz" type="text" value="" class="span2 border-radius-none pull-right" />

                    <label>Handy Number <span class="color-red"></span></label>
                    <form:input path="handynumber" type="text" value="" class="span12 border-radius-none" />

                    <label path="newsletterpermission">Want to subscribe newsletter?</label>
                    <form:radiobutton path="newsletterpermission" class="form-control" value="true"/>Yes
                    <form:radiobutton style="margin-left:15px" path="newsletterpermission" class="form-control" value="false"/>No
                    <br/>
                    <br/>
                    <c:if test="${empty students.firstname}">
                        <input class="btn-u" type="submit"
                               value="<spring:message text="Register for event"/>" />
                    </c:if>
                </table>
            </form:form>

任何指针都会很好。非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用控制器中的入口点/方法实现此操作,并使用下面的

操作路径变量
 @RequestMapping(value="/student/{action}", method = RequestMethod.POST)
        public String EntryPoint(@PathVaribale String action, ModelMap model) {
             switch (action) {
             case "add":
                  // delegate to addMethod
                 break;
             case "activate":
                   // delegate to activateMethod
                 break;
             case "register":
                // delegate to registerMethod
                 break;
             default: 
              ///Unsurported operation
       }

            return "index";
        }

并且你可以保留c:url,记得在负责设置表单bean的控制器方法上设置model.action属性,为你的case bean设置或使其更通用

 <c:url var="action" value="/student/model.action/" ></c:url>