【问题标题】:how javascript alert function work in String var Of java on web browserjavascript警报功能如何在Web浏览器上的Java String var中工作
【发布时间】:2013-11-24 10:33:06
【问题描述】:

我在课堂上有一个字符串变量 字符串消息;

private int checkConstraints() 
    int a = 0;
    if (docProcessId==0) {
        a++;
   message = "<script language=\"javascript\"> alert('Please Select Doc Process Name'); </script>";
    }else if (refTypeName.equals("")) {
        a++;
        message = "<script> alert('Enter Reference Type Name!');</script>";
    }

    return a;

}

实际上我是这样做的,但是当调用此方法时不等于 0,则消息等于整个字符串打印在页面上,请不要发出警报任何解决方案

【问题讨论】:

  • 在您附加此字符串的网页中。

标签: javascript validation jsf alert


【解决方案1】:

默认情况下,JSF 将所有模型值作为XSS attack prevention 的一部分进行 HTML 转义。您的具体问题表明您对此一无所知。您可以使用 &lt;h:outputText&gt; 并将 escape 属性设置为 false 来“解决”它。

<h:outputText value="#{bean.message}" escape="false" />

但是,您的具体问题更大。您处于 JSF/MVC 的角度,基本上在这里犯了两个主要的设计错误:

  1. 在模型中而不是在视图中编写 HTML 代码。
  2. 在操作方法中而不是在验证器中执行验证。

您应该在视图中编写 HTML 代码,而不是在模型中。您应该使用普通的 JSF 验证器执行验证。 JSF 有很多内置的验证器。

此外,不是真正的设计错误,而是用户体验错误,还有第三个错误:使用 JavaScript 警报显示验证消息。这简直就是 1990 年和 Web 1.0。我们现在是 2013 年,我们学到了很多,很多当时的用户体验失败。使用 JavaScript 警报来显示验证消息就是其中之一。

这是使用 JSF 提供的验证工具的正确方法:

<h:form>
    <h:selectOneMenu value="#{bean.docProcessId}" required="true" 
        requiredMessage="Please Select Doc Process Name">
        <f:selectItems ... />
    </h:selectOneMenu>
    <h:inputText value="#{bean.refTypeName}" required="true"
        requiredMessage="Enter Reference Type Name" />
    <h:commandButton value="submit" />
    <h:messages />
</h:form>

就是这样。 required="true" 告诉 JSF 这些输入是必需的。 requiredMessage 属性允许您为所需的验证指定自定义消息。消息将显示在&lt;h:messages&gt; 声明的位置。您可以通过layout 属性和CSS 方式(如infoClasserrorClass 等)自定义布局。您甚至可以手动循环它并为每条消息手动创建烦人的警报,而不是使用&lt;h:messages&gt;

<ui:repeat value="#{facesContext.messageList}" var="message">
    <script>alert("#{message.summary}");</script>
</ui:repeat>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    相关资源
    最近更新 更多