• Spring与jsp表达式的产生的问题


    今天遇到一个问题就是Spring标签与jsp表达式的问题

    直接上代码

    <form:form commandName="book" action="/book_update" method="post">
        <fieldset>
            <legend>Edit a book</legend>
            <form:hidden path="id"/>
            <p>
                <label for="category">Category: </label>
                 <form:select id="category" path="category.id" items="${categories}"
                    itemLabel="name" itemValue="id"/>
            </p>
            <p>
                <label for="title">Title: </label>
                <form:input id="title" path="title"/>
            </p>
            <p>
                <label for="author">Author: </label>
                <form:input id="author" path="author"/>
            </p>
            <p>
                <label for="isbn">ISBN: </label>
                <form:input id="isbn" path="isbn"/>
            </p>
            
            <p id="buttons">
                <input id="reset" type="reset" tabindex="4">
                <input id="submit" type="submit" tabindex="5" 
                    value="Update Book">
            </p>
        </fieldset>
    </form:form>

    问题是在action="/book_update"中,这个action经过在提交时会有问题,想起了项目中的basepath,就试着去做了,但是总会报一个错,就是%>没有正确的结束,猜测是因为spring标签中不能插入java表达的代码,后来查了一下,说spring标签兼容el,所以,就这样写

    //获取basepath

    <%basepath="..."%>

    <c:url value="<%=basepath%> var="basepath" />

    在action这样写

    action="/'${basepath}'book_update"

    这样就ok,核心是用el表达式不要用输出表达式

    补充:

    <% %>   叫做java脚本(局部变量)

    <%= %>   叫做输出表达式

    <%! %>   叫做jsp声明(相当于全局变量)

    <%-- --%>   叫做jsp注释

  • 相关阅读:
    <frame>、<iframe>、<embed>、<object> 和 <applet>
    xss攻击
    回流 和 重绘
    defer 和 async 的区别
    从输入URL到浏览页面的过程
    webkit vs v8
    缓存
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/rocky-AGE-24/p/5031355.html
Copyright © 2020-2023  润新知