写下这样的事情是很乏味和丑陋的:
<input type="button" value="<fmt:message key="submitKey" />" />
Run Code Online (Sandbox Code Playgroud)
如果您想将消息标记嵌套在另一个标记的属性中,则会变得更糟.
有没有任何简写.例如(在JSF中):
<h:commandButton value="#{msg.shareKey}" />
Run Code Online (Sandbox Code Playgroud)
(适用于spring-mvc的解决方案)
我正在努力防止基于Java,基于Spring的Web应用程序中的跨站点脚本(XSS).我已经实现了一个类似于这个例子的servlet过滤器http://greatwebguy.com/programming/java/simple-cross-site-scripting-xss-servlet-filter/,它清理了应用程序的所有输入.作为额外的安全措施,我还想清理所有JSP中应用程序的所有输出.我做了一些研究,看看如何做到这一点,并找到了两个补充选项.
其中之一是使用Spring的defaultHtmlEscape属性.这很容易实现(web.xml中的几行),当你的输出通过spring的标签之一(即:消息或表单标签)时,它非常有用.我发现的另一个选择是不直接使用EL表达式${...},而是使用<c:out value="${...}" />
第二种方法非常有效,但是由于我正在处理的应用程序的大小(200多个JSP文件).用c:out标签替换EL表达式的所有不当使用是一项非常麻烦的任务.此外,确保所有开发人员都遵守使用c:out标签的惯例(更不用说,代码将更难以理解)将来将成为一项繁琐的任务.
有没有其他方法可以逃避需要更少代码修改的EL表达式的输出?
我正在使用ResourceBundle,我想给用户一个选择GUI语言的选项.
我想获得特定包下的所有资源文件的列表.
我不知道我将拥有哪些资源,因为此应用程序基于插件.
是否可以选择从java中搜索包下的所有可用资源?
(如果不,我猜插件应该为它提供所有可用的本地)
谢谢你们