如何在 ap:tooltip 中的 p:messages 中添加换行符

Nic*_*Div 2 jsf styles tooltip primefaces

我试图在密码归档应具有的规则列表之间添加换行符:

希望这段代码可以帮助您在本地计算机上重现它

我的 JSF 表单如下所示:

<h:form id="passwordForm">
     <div class="form-group has-feedback">
        <p:password id="password1" value="#{testBean.password}"
                    required="true"
                    requiredMessage="This field cannot be left empty"
                    placeholder="Password">
        </p:password>
        <p:tooltip for="password1"  id="password1ToolTip"
                   hideEvent="focus"
                   rendered="#{not empty facesContext.getMessageList('passwordForm:password1')}"
                   position="right" hideEffect="fade" showEffect="fade">
            <p:message for="password1"/>
        </p:tooltip>
    </div>
</h:form>
Run Code Online (Sandbox Code Playgroud)

这就是我的豆子的样子:

@Named
@RequestScoped
public class TestBean implements Serializable {

    private static final long serialVersionUID = 2016821444602021904L;


    @Pattern(regexp = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}", 
    message = "Password should contain minimum 8 characters, 1 Uppercase alphabet, 1 lower case alphabet and 1 special character")
    @Size(min = 8, message = "Password cannot be this short!")
    private String password;

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

}
Run Code Online (Sandbox Code Playgroud)

基于 SO 上的一些答案,我尝试通过引入特殊实体代码来修改验证消息&#13;[![&#10;][1]][1]如下所示:

Password should contain&#13;Minimum 8 characters&#13;1 Uppercase alphabet&#13;&#10; 1 lower case alphabet and 1 special character
Run Code Online (Sandbox Code Playgroud)

注意:此附加图像可能无法在某些浏览器中显示 这就是工具提示的样子

las*_*ort 5

为什么要在额外的工具提示中显示该消息?看起来有点奇怪。

不管怎样,你需要的是<br/>你想要换行并escape="false"在你的p:message.

信息:

Password should contain&#13;Minimum 8 characters&#13;1 <br/> Uppercase Password...
Run Code Online (Sandbox Code Playgroud)

xhtml:

<p:message for="password1" escape="false"/>
Run Code Online (Sandbox Code Playgroud)

更新1:

感谢 Parkash Kumar 提供了改进答案的附加信息。

更新2:

您还可以使用 CSS 和/n换行符,然后您需要应用:

#messages td { white-space: pre; }
Run Code Online (Sandbox Code Playgroud)

到你的CSS。