JSR303 i18n无法在基于Primefaces的页面中工作

时间:2017-03-05 19:42:56

标签: java primefaces bean-validation

我正在尝试自定义(包括i18n)JSR303,但我总是得到

msg.test.validation=This is a test

我创建了一个包含内容的ValidationMessages.properties文件

@NotNull    
@Pattern (regexp="^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$", message = "{msg.test.validation}")
private String test;

文件(包括ValidationMessages_de.properties,_de_DE.properties和_en.properties)放在src / main / resources中。在war文件中,文件位于WEB-INF / classes(标准maven行为)

在托管bean中我有

<h:form>
  <p:inputText id="test" value="#{validationView.test}" label="Test" />
  <p:commandButton id="testbutton" action="#{validationView.showTest}"  value="Test" validateClient="true" />
  <p:message for="test" />
</h:form>

基于Primefaces 6.0的页面包含

private void Advancedmodewindow_click(object sender, EventArgs e)
{
    classx.AllocConsole();

    TextWriter writer = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true };
    Console.SetOut(writer);

    Console.WriteLine("X");

    Console.SetIn(new StreamReader(Console.OpenStandardInput()));
    string line = Console.ReadLine();

    classx.FreeConsole();
}

我似乎找不到ValidationMessages,但为什么?如果我输入一条消息而不是占位符&#39; msg.test.validation&#39;显示此消息。

任何提示?

1 个答案:

答案 0 :(得分:0)

这应该在prime-faces组件中起作用:

<p:inputText validatorMessage="#{message['msg.test.validation']}" />