`
huangcanqin
  • 浏览: 28789 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

freemarker html转义

阅读更多

表单中输入了<b></b>、单引号、双引号等内容,正确保存后,列表页面、查看详情页面、编辑页面,都出现了问题不能正确显示上面的内容。
怎样才能正确显示呢?有一个办法就是在将这些内容放到Html页面上显示之前,先进行Html转义。
查看详情页面、编辑页面的Html转义方法,在Java标准框架中,使用的是Freemarker作为页面的模板技术,它内置了一个函数xhtml,就是用来对内容进行Html转义的。看下面的代码:

                    <tr>
                        <td><label>名称</label></td>
                        <td>${((topicCase.name)!'')?xhtml}</td>
                    </tr>


                <tr>
                    <td>
                        <label required="true
"
>名称</label>
                    </td>
                    <td>
                        <input name="name"
 art="textbox"
 value="${((topicCase.name)!'')?xhtml}"
 form_fill="true
"
 required="true
"
 validType="length[1,50]"
/>
                    </td>
                </tr>

列表页面使用的是jart的grid控件,它的数据格式为json,所以我们在json序列化时进行Html转义。Java标准框架中提供了一个注解@ResponseEscape,以指明在进行json序列化时,要进行Html转义,代码如下:

	@ResponseEscape
	public
 PaginationList<TopicCase> getList(@PaginationParam PaginationCriteria paginationCriteria, 
			@RequestEscape(policy=EscapePolicy.Sql) @RequestParam(required = false
) String
 name, 
			@RequestParam(required = false
) TopicCaseState state, 
			@DateParam Date beginTime, 
			@DateParam Date endTime) {}

要使@ResponseEscape生效,还得在servlet-context.xml中进行如下配置:

	<!-- Enables the Spring MVC @Controller programming model -->


	<annotation-driven conversion-service="conversionService"
>

		...
		<return-value-handlers>

			<beans:bean class="com.iflytek.framework.web.mvc.RequestResponseEscapeMethodProcessor"
>

				<beans:property name="contentType"
>

					<beans:value>
application/json;charset=UTF-8</beans:value>

				</beans:property>

				<beans:property name="charset"
>

					<beans:value>
utf-8</beans:value>

				</beans:property>

				...
			</beans:bean>

		</return-value-handlers>

	</annotation-driven>

分享到:
评论

相关推荐

    实用方便freemarker.jar freemarker架包 freemarker生成excel、word、html、xml例子

    FreeMarker会自动处理转义字符,确保生成的XML文档符合规范。 4. FreeMarker生成Word和Excel: 对于生成Word(.doc或.docx)和Excel(.xls或.xlsx)文档,FreeMarker不能直接操作,因为它们不是纯文本格式。通常,...

    Velocity 和 FreeMarker区别

    - **FreeMarker**内置了多种转义功能,比如HTML转义、XML转义等,可以通过简单的指令实现。 - **Velocity**在这方面的支持较弱,需要开发者自己实现或依赖外部库。 6. **字符处理**: - **FreeMarker**支持更...

    FreeMarker手册-Freemarker 2.3.18

    html`用于转义HTML特殊字符,`?replace`进行字符串替换,`?upper_case`和`?lower_case`进行大小写转换。此外,还有算术操作符(+、-、*、/、%)、比较操作符(==、!=、&lt;、&gt;、、&gt;=)和逻辑操作符(&&、||、!)。 6. ...

    Freemarker操作字符串

    url`等转换器,可以将字符串转义为安全的HTML或URL。例如: ```html &lt;#assign unsafeStr = "&lt;script&gt;alert('XSS');&lt;/script&gt;"&gt; ${unsafeStr?html}&lt;/p&gt; ``` 输出:"&lt;script&gt;alert(&#39;XSS&#39;);&lt;/...

    Freemarker简介及标签详解大全

    6. 为 Web 准备:在模板语言中内建处理典型 Web 相关任务(如 HTML 转义)的结构。 7. 智能的国际化和本地化:字符集智能化(内部使用 UNICODE),数字格式本地化敏感,日期和时间格式本地化敏感等。 8. 强大的 XML ...

    FreeMarker概述2008

    4. **为Web准备**:内建处理Web相关的任务,如HTML转义,支持集成到Model2 Web框架中,替代JSP。同时,它支持JSP标记库,遵循MVC模式,分离视觉设计和应用程序逻辑。 5. **智能的国际化和本地化**:FreeMarker支持...

    freemarker中文手册

    1. 模板:Freemarker模板是HTML或者其他格式的文本文件,其中包含了Freemarker特定的指令和表达式,用来插入、控制或计算数据。 2. 数据模型:这是提供给Freemarker模板的数据源,通常由应用程序创建并传递给...

    freemarker操作手册-完整freemarker教程

    - `#autoesc`:自动转义HTML特殊字符,防止XSS攻击。 - `#function`:定义函数,类似于宏,但支持参数。 5. **表达式和逻辑运算** - 字符串连接:使用`~`符号连接字符串。 - 数学运算:支持加减乘除、取余、...

    FreeMarker文档.CHM

    7. **预处理与后处理**:开发者可以通过自定义处理器对模板进行预处理(如添加全局变量)和后处理(如HTML转义)。 8. **模板继承**:使用`&lt;#assign&gt;`和`&lt;#macro&gt;`,可以创建可重用的模板片段和宏,实现模板的模块...

    freemarker概述

    - **内建Web功能**: 内置了处理Web相关任务的结构,如HTML转义等。 - **集成框架**: 可以集成到Model2 Web应用框架中作为JSP的替代方案。 - **支持JSP标记库**: 允许在模板中使用JSP标签。 - **国际化和本地化**...

    freemarker中文文档与包

    html`用于转义HTML特殊字符,`?upper_case`将字符串转化为大写,`&lt;#list&gt;`用于遍历集合等,这些功能极大地丰富了模板的表达能力。 6. **自定义指令与宏**: 开发者可以创建自定义指令来扩展Freemarker的功能,例如...

    FreeMarker手册.pdf

    html`用于转义HTML实体,`?length`用于获取集合的长度。此外,还可以在模板中调用对象的方法,如`${list.sort()}`。 7. **模板继承与导入**:FreeMarker支持模板继承,通过`&lt;#include&gt;`和`&lt;#macro&gt;`指令,可以实现...

    FreeMarker.pdf

    对于Web应用,FreeMarker内置了处理Web相关任务的功能,如HTML转义,并且可以与Model2框架(如Struts)无缝集成,作为JSP的替代。同时,它支持JSP标记库,便于MVC模式的实现,确保页面设计师和程序员的工作分离。 ...

    freemarker代码

    5. 转义:`&lt;@...&gt;`用于调用Freemarker内置的函数或宏,例如`&lt;@include&gt;`用于包含其他模板。 三、Freemarker与Spring MVC集成 在Java Web开发中,通常结合Spring MVC框架使用Freemarker。Spring MVC提供了一种方便的...

    freemarker中文学习资料

    Freemarker是一个强大的模板引擎,常用于Web开发中生成动态HTML页面。它是Java语言的一个开源项目,遵循Apache软件基金会的Apache License。这个“freemarker中文学习资料”压缩包提供了详尽的网页版API文档,对于想...

    freemarker中文手册.pdf

    - **输出转换**:内置多种输出转换功能,如HTML转义、内容压缩等,还可以自定义转换规则。 ##### 3. 通用数据模型 - **对象封装**:通过插件式对象封装机制,使得Java对象能够在模板中以统一的方式呈现。 - **抽象...

    FreeMarker的基础知识整理

    - **文本插值**:在HTML文本中,FreeMarker会自动转义特殊字符。可以通过`&lt;#escape&gt;`和`&lt;#noescape&gt;`控制转义行为。 - **数字插值**:可以使用`number_format`设置格式,或者使用`string`函数自定义格式。 - **日期/...

    freemarker 教程 使用手册

    4. 静态文本和HTML转义:`@ftlvar`用于指定变量类型,防止XSS攻击;`&lt;@html&gt;`标记用于安全输出HTML。 五、最佳实践与注意事项 1. 模板设计:保持模板简洁,避免过于复杂的业务逻辑。 2. 错误处理:合理配置错误...

    FreeMarker内置函数

    - `no_esc`: 禁止FreeMarker对字符串进行转义。 7. **自定义函数** 除了内置函数,FreeMarker还支持通过`&lt;#function&gt;`标签创建自定义函数,以便扩展其功能。 了解并熟练使用这些内置函数,能够显著提升在...

    Freemarker教程及jar包

    html`用于转义HTML字符,`&lt;#assign&gt;`用于声明和赋值变量。 4. **数据模型**:理解如何创建和组织数据模型,将Java对象映射到模板变量。 5. **模板加载和处理**:学习如何通过`Configuration`对象加载模板文件,并...

Global site tag (gtag.js) - Google Analytics