1.freemarker标签使用过程中,有一种情况,若是一个值中包含有html样式,在页面显示的时候直接${datail}显示的是错误的,
这样肯定是不正确的,有的人说加上?html,这种写法获得的结果是下图,直接把样式都显示出来了:
后来想了一种方法,采用正则表达式替换的方式,吧html标签都取消了,主要是采用freemarker的replace
函数,使用正则表达式,去除html标签,${datail?replace("<[^>]*>","","ri")},他的意思参考:
这样就能获取正确格式:若是遇到多层的函数,则优先转化,eg${(datail?replace("<[^>]*>","","ri"))[0..100]}
先转化再截取字符串
- 替换字符串 replace
- ${s?replace(‘ba’, ‘XY’ )}
- ${s?replace(‘ba’, ‘XY’ , ‘规则参数’)}将s里的所有的ba替换成xy 规则参数包含: i r m s c f 具体含义如下:
- · i: 大小写不区分.
- · f: 只替换第一个出现被替换字符串的字符串
- · r: XY是正则表达式
- · m: Multi-line mode for regular expressions. In multi-line mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the string. By default these expressions only match at the beginning and the end of the entire string.
- · s: Enables dotall mode for regular expressions (same as Perl singe-line mode). In dotall mode, the expression . matches any character, including a line terminator. By default this expression does not match line terminators.
-
· c: Permits whitespace and comments in regular expressions.
另外补充一点:([^>]*)([^<]*)这个通配符可以找到<和<符号间的字符串。
<([^>]*)([^<]*)>这个通配符可以找到<和>符号间的字符串,作用可能是过滤网页上的html代码,包括图片和链接,仅留下纯文本的内容。
相关推荐
FreeMarker会自动处理转义字符,确保生成的XML文档符合规范。 4. FreeMarker生成Word和Excel: 对于生成Word(.doc或.docx)和Excel(.xls或.xlsx)文档,FreeMarker不能直接操作,因为它们不是纯文本格式。通常,...
- **FreeMarker**内置了多种转义功能,比如HTML转义、XML转义等,可以通过简单的指令实现。 - **Velocity**在这方面的支持较弱,需要开发者自己实现或依赖外部库。 6. **字符处理**: - **FreeMarker**支持更...
html`用于转义HTML特殊字符,`?replace`进行字符串替换,`?upper_case`和`?lower_case`进行大小写转换。此外,还有算术操作符(+、-、*、/、%)、比较操作符(==、!=、<、>、、>=)和逻辑操作符(&&、||、!)。 6. ...
url`等转换器,可以将字符串转义为安全的HTML或URL。例如: ```html <#assign unsafeStr = "<script>alert('XSS');</script>"> ${unsafeStr?html}</p> ``` 输出:"<script>alert('XSS');</...
6. 为 Web 准备:在模板语言中内建处理典型 Web 相关任务(如 HTML 转义)的结构。 7. 智能的国际化和本地化:字符集智能化(内部使用 UNICODE),数字格式本地化敏感,日期和时间格式本地化敏感等。 8. 强大的 XML ...
4. **为Web准备**:内建处理Web相关的任务,如HTML转义,支持集成到Model2 Web框架中,替代JSP。同时,它支持JSP标记库,遵循MVC模式,分离视觉设计和应用程序逻辑。 5. **智能的国际化和本地化**:FreeMarker支持...
1. 模板:Freemarker模板是HTML或者其他格式的文本文件,其中包含了Freemarker特定的指令和表达式,用来插入、控制或计算数据。 2. 数据模型:这是提供给Freemarker模板的数据源,通常由应用程序创建并传递给...
- `#autoesc`:自动转义HTML特殊字符,防止XSS攻击。 - `#function`:定义函数,类似于宏,但支持参数。 5. **表达式和逻辑运算** - 字符串连接:使用`~`符号连接字符串。 - 数学运算:支持加减乘除、取余、...
7. **预处理与后处理**:开发者可以通过自定义处理器对模板进行预处理(如添加全局变量)和后处理(如HTML转义)。 8. **模板继承**:使用`<#assign>`和`<#macro>`,可以创建可重用的模板片段和宏,实现模板的模块...
- **内建Web功能**: 内置了处理Web相关任务的结构,如HTML转义等。 - **集成框架**: 可以集成到Model2 Web应用框架中作为JSP的替代方案。 - **支持JSP标记库**: 允许在模板中使用JSP标签。 - **国际化和本地化**...
html`用于转义HTML特殊字符,`?upper_case`将字符串转化为大写,`<#list>`用于遍历集合等,这些功能极大地丰富了模板的表达能力。 6. **自定义指令与宏**: 开发者可以创建自定义指令来扩展Freemarker的功能,例如...
html`用于转义HTML实体,`?length`用于获取集合的长度。此外,还可以在模板中调用对象的方法,如`${list.sort()}`。 7. **模板继承与导入**:FreeMarker支持模板继承,通过`<#include>`和`<#macro>`指令,可以实现...
对于Web应用,FreeMarker内置了处理Web相关任务的功能,如HTML转义,并且可以与Model2框架(如Struts)无缝集成,作为JSP的替代。同时,它支持JSP标记库,便于MVC模式的实现,确保页面设计师和程序员的工作分离。 ...
5. 转义:`<@...>`用于调用Freemarker内置的函数或宏,例如`<@include>`用于包含其他模板。 三、Freemarker与Spring MVC集成 在Java Web开发中,通常结合Spring MVC框架使用Freemarker。Spring MVC提供了一种方便的...
Freemarker是一个强大的模板引擎,常用于Web开发中生成动态HTML页面。它是Java语言的一个开源项目,遵循Apache软件基金会的Apache License。这个“freemarker中文学习资料”压缩包提供了详尽的网页版API文档,对于想...
- **输出转换**:内置多种输出转换功能,如HTML转义、内容压缩等,还可以自定义转换规则。 ##### 3. 通用数据模型 - **对象封装**:通过插件式对象封装机制,使得Java对象能够在模板中以统一的方式呈现。 - **抽象...
- **文本插值**:在HTML文本中,FreeMarker会自动转义特殊字符。可以通过`<#escape>`和`<#noescape>`控制转义行为。 - **数字插值**:可以使用`number_format`设置格式,或者使用`string`函数自定义格式。 - **日期/...
4. 静态文本和HTML转义:`@ftlvar`用于指定变量类型,防止XSS攻击;`<@html>`标记用于安全输出HTML。 五、最佳实践与注意事项 1. 模板设计:保持模板简洁,避免过于复杂的业务逻辑。 2. 错误处理:合理配置错误...
- `no_esc`: 禁止FreeMarker对字符串进行转义。 7. **自定义函数** 除了内置函数,FreeMarker还支持通过`<#function>`标签创建自定义函数,以便扩展其功能。 了解并熟练使用这些内置函数,能够显著提升在...
html`(转义HTML特殊字符)、`?replace`(字符串替换)等,以及`<#list>`、`<#nested>`等指令,增强了模板的功能。 7. **模板继承和导入**: - FreeMarker支持模板继承,通过`<#import>`和`<@macro>`,可以创建可...