Spring Framework JSP标记有什么作用?

我目前将一些HTML标签映射到我的JSP文件中的Spring标签。 Spring MVC有两个标记库:spring.tld和spring-form.tld

我了解表单标记库中定义的标记的描述,因此我知道哪些HTML标记要映射到Spring表单标记。 但是,我不知道如何使用Spring Tag Library。 定义的标签和给定的描述如下:

  • htmlEscape :为当前页面设置默认的HTML转义值。 如果有的话,覆盖web.xml中的“defaultHtmlEscape”上下文参数。
  • escapeBody :将其封闭的主体内容,应用HTML转义和/或JavaScript转义。 HTML转义标志参与整个页面或整个应用程序的设置(例如通过HtmlEscapeTag或web.xml中的“defaultHtmlEscape”上下文参数)。
  • 消息 :使用给定的代码检索消息,如果代码不可解析,则使用文本。 HTML转义标志参与整个页面或整个应用程序的设置(例如通过HtmlEscapeTag或web.xml中的“defaultHtmlEscape”上下文参数)。
  • 主题 :使用给定的代码检索主题消息,如果代码不可解析,则使用文本。 HTML转义标志参与整个页面或整个应用程序的设置(例如通过HtmlEscapeTag或web.xml中的“defaultHtmlEscape”上下文参数)。
  • 参数 :基于JSTL fmt:param标签的参数标签。 目的是支持Spring中的参数:message和spring:theme标签。
  • hasBindErrors :在发生绑定错误时提供Errors实例。 HTML转义标志参与整个页面或整个应用程序的设置(例如通过HtmlEscapeTag或web.xml中的“defaultHtmlEscape”上下文参数)。
  • nestedPath :设置要由绑定标签路径使用的嵌套路径。
  • bind :为给定的绑定路径提供BindStatus对象。 HTML转义标志参与整个页面或整个应用程序的设置(例如通过HtmlEscapeTag或web.xml中的“defaultHtmlEscape”上下文参数)。
  • transform :使用BindTag中的相应自定义PropertyEditor(只能在BindTag中使用)将变量转换为字符串。 HTML转义标志参与整个页面或整个应用程序的设置(例如通过HtmlEscapeTag或web.xml中的“defaultHtmlEscape”上下文参数)。
  • url :基于JSTL c:url标记的URL标记。 该变体完全向后兼容标准标签。 增强功能包括支持URL模板参数。
  • 参数 :基于JSTL c:param标签的参数标签。 唯一的目的是支持弹簧内部的参数:url标签。
  • eval :评估Spring表达式(SpEL)并打印结果或将其分配给变量。
  • 我丝毫不理解这些描述。 转义,主题,JSTL,绑定,嵌套路径,Spring表达式等 - 他们在说什么?

    这些标签做什么? 他们在我的JSP文件中替换哪些标签? 我尝试在线搜索,但所有搜索结果都是关于表单标记库(spring-form.tld)而不是标记库(spring.tld),这是我遇到的问题。

    编辑 :我正在从Struts 1.1迁移到Spring 4.1.6。 部分步骤涉及在JSP文件中转换为与Spring兼容的标记。 原始的JSP文件不包含任何taglib指令,所以我猜测只有原始代码中使用了HTML标签。


    然后,使用表单taglib将您的后端对象与表单的字段轻松绑定。 宣布这些春天taglib

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    

    并在标签内使用它:

     <form:form>
        <table>
           <tr>
              <td>First Name:</td>
              <td><form:input path="user.firstName"/></td>
           </tr>
           <tr>
              <td>Last Name:</td>
              <td><form:input path="user.lastName"/></td>
           </tr>
           <tr>
              <td colspan="2">
                 <input type="submit" value="Save!"/>
              </td>
           </tr>
        </table>
    </form:form>
    

    转义是与特殊字符的HTML编码相关的。 如果您不在应用程序中相应使用它,可能会引发一些安全问题。

    消息与i18n相关:您可以轻松构建一些国家/地区之间的区域设置切换器。 检索所有翻译的方法是使用该taglib。

    主题是相对于你的web应用程序的外观和感觉。 您可以使用这些taglib为最终用户构建一个轻松的主题切换器。

    绑定相对于您的视图中处理来自DTO的许多字段,特别是在您提交表单时。

    JSTL是处理JSP中许多事情的一种方式,在Spring-taglibs开发多年之前就已经开发出来了。 JSTL保持有效选择,但在视图层开发的较低级别。 做同样的工作会更长,也许更难。

    对于您的JSP标头,以声明您的taglib的导入:

    <%@ page language="java" contentType="text/html; charset=UTF-8" isELIgnored="false" pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
    <%@page session="true"%>
    

    当然,这只是一个例子,带来了一个好处:在管理员区域内,处理认证内容的spring-security taglib导入JSP :)

    用当前的官方文档发现这些世界。 查看“22.5 JSP&JSTL”部分的第555页,并期待在文档spring:bindspring:message等内容中找到需要了解的东西:)

    链接地址: http://www.djcxy.com/p/76589.html

    上一篇: What do the Spring Framework JSP Tags do?

    下一篇: java script is not working in jsp file spring mvc