2014-03-06 16 views
7

Ich habe ein Problem mit der Verwendung von Tag, um den Pfad eines Formulars in meiner JSP festzulegen. Ich habe es auch außerhalb des Form-Tags und das funktioniert gut. Es scheint jedoch nicht innerhalb des Spring Form-Tags zu funktionieren. Mache ich etwas falsch oder funktioniert es nicht innerhalb anderer JSTL-Tags? Danke im Voraus!JSTL - c: url funktioniert nicht mit Formularaktion

Dies ist, was die Version außerhalb der Formulartags druckt, die korrekt ist.

/searchtool/user/hinzufügen

Dies ist, was die Form Aktion ist eingestellt auf:

/searchtool/user /% 3Cc: url% 20value = '/ user/hinzufügen' % 20 /% 3E

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %> 
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 

<div class="container"> 
    <div class="row"> 
     <div class="col-xs-12 col-sm-8 col-md-6"> 
      <h3>User - Add</h3> 
      <br> 

      <spring:hasBindErrors name="user.*"> 
       <div class="alert alert-danger"> 
        <sf:errors path="firstName"></sf:errors> 
        <sf:errors path="lastName"></sf:errors> 
        <sf:errors path="email"></sf:errors> 
        <sf:errors path="userName"></sf:errors> 
        <sf:errors path="password"></sf:errors> 
       </div> 
      </spring:hasBindErrors> 

      <sf:form commandName="user" method="post" action="<c:url value='/user/add' />"> <c:url value='/user/add' /> 
       <div class="form-group"> 
        <label for="first-name">First Name</label> 
        <sf:input path="firstName" id="first-name" class="form-control" placeholder="First Name" /> 
       </div> 
       <div class="form-group"> 
        <label for="last-name">Last Name</label> 
        <sf:input path="lastName" id="last-name" class="form-control" placeholder="Last Name" /> 
       </div> 
       <div class="form-group"> 
        <label for="email">Email</label> 
        <sf:input path="email" id="email" class="form-control" placeholder="Email" /> 
       </div> 
       <div class="form-group"> 
        <label for="user-name">Username</label> 
        <sf:input path="userName" id="user-name" class="form-control" placeholder="Username" /> 
       </div> 
       <div class="form-group"> 
        <label for="password">Password</label> 
        <sf:password path="password" id="password" class="form-control" placeholder="" /> 
       </div> 
       <div class="form-group"> 
        <label for="confirm-password">Confirm Password</label> 
        <input type="password" id="confirm-password" class="form-control" placeholder="" /> 
       </div> 
       <button type="submit" class="btn btn-default">Save</button> 
       <button type="button" class="btn btn-default">Cancel</button> 
      </sf:form> 
     </div> 
    </div> 
</div> 

Antwort

20

Sie können ein Tag nicht innerhalb eines Tags verwenden. So trennen Sie einfach Ihre Tags wie folgt:

<c:url var="post_url" value="/user/add" /> 
<sf:form commandName="user" method="post" action="${post_url}"> 
+0

Danke für die Erklärung. Klappt wunderbar. – greyfox

Verwandte Themen