【问题标题】:JSTL - c:url not working with form actionJSTL - c:url 不适用于表单操作
【发布时间】:2019-09-29 07:36:01
【问题描述】:

在我的 JSP 中使用标签设置表单路径时遇到问题。我也将它放在表单标签之外,并且效果很好。但是,它似乎在 spring 表单标签中不起作用。我做错了什么还是在其他 JSTL 标记中不起作用?提前致谢!

这是表单标签之外的版本打印的正确的。

/搜索工具/用户/添加

这是表单操作设置的内容:

/searchtool/user/%3Cc:url%20value='/user/add'%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>

【问题讨论】:

    标签: jsp spring-mvc jstl


    【解决方案1】:

    您不能在标签内使用标签。因此,只需将您的标签分开如下:

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

    【讨论】:

      【解决方案2】:

      尽管 Santhosh Joshi 的回答是首选方式,只是为了告知替代方案

      <sf:form commandName="user" method="post" action="${pageContext.request.contextPath}/user/add"> 
      

      【讨论】:

        猜你喜欢
        • 2021-09-22
        • 2013-04-22
        • 2011-04-10
        • 1970-01-01
        • 1970-01-01
        • 2019-12-29
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多