Java / JSF i18n长文本(术语,常见问题)

在大多数情况下,我只是在页面的某处组合了很多短文本字符串。 但在某些情况下,我只有一个包含长静态文本的页面,如术语或常见问题解答。

现在,只需将段落放在资源包中或构建切换到terms_en.xhtml等等。

什么是在JSF中处理长文本的最佳/默认方式?

通常有两种方法:

  1. 无论文件多长时间放入资源文件。 我相信你不想这样做,因为它很麻烦,资源文件变得难以维护。
  2. 创建静态文件(即HTML页面或简单文本文件)并在运行时加载它们。 对于HTML文件,您可以轻松地使用例如iframe嵌入它们。 您只需要读取正确的文件,但名称可以由后端控制器根据UIViewRoot Locale构建。 对于静态文本文件,您的方法会有所不同:只需在后端按需加载它们并询问内容。

就个人而言,我更喜欢简单文本文件的第二种方法。 如果您不需要任何“丰富”function,例如给定单词或段落的不同样式,则可以非常容易地实现。 实际上iframe方式也很容易处理,我不买这个想法的唯一原因是这个iframe的东西意味着两个请求而不是一个。

BTW。 实际上你可以在后端加载HTML并正确显示,但你必须记住不要转义标签:

 

确保这不是最终用户可能输入的内容,因为您最终会遇到XSS漏洞。