带有 JS 的 Java 自定义标签

标签 java javascript jsp servlets custom-tags

我有自定义标签,其中包含带有 text inputsubmitform。我想使用 JS 验证此 text input,因此我的自定义标记输出应如下所示:

<script type="text/javascript">
    function validate(form) {
        var text = form.textInput;
        // validation code
    }
</script>

<form onsubmit='return validate(this);'>
    <input type='text' name='textInput'/>
    <input type='submit'/>
</form>

(注意,此代码已简化!)

当我想在页面上使用这个标签两次或更多次时,我的问题就出现了——我想在页面上再次打印 form,但不是 JS 验证码!验证码在页面必须是唯一的。我该如何存档?我的自定义标记扩展 javax.servlet.jsp.tagext.TagSupport

最佳答案

我找到了最适合我的解决方案。

javax.servlet.jsp.tagext.TagSupport 包含 protected 字段 pageContext,它呈现...页面上下文!我可以轻松访问 javax.servlet.jsp.PageContext 的上下文属性。所以,我将下一个代码放在我的自定义标签中:

public int doStartTag() throws JspException {
    if (pageContext.getAttribute("validated") == null) {
        // validation code writing
        pageContext.setAttribute("validated", true);
    }
    ...
}

If 条件在每次页面呈现时只能达到一次。

希望它对某人有用。

关于带有 JS 的 Java 自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601282/

相关文章:

java - 在jsp中传递变量时出错?

java - 在 MethodInterceptor 中获取目标

QuickSort 方法中的 java.lang.IllegalArgumentException

javascript - 在 WordPress 中分离 JS 和 HTML

javascript - Return False 不适用于表格

java - 如何在JSP中显示Spring Webflow的 "flowScope"的内容?

java - 分数随 ActionMove 随机增加

java - 在 Java 中实现 SHA1withRSA

javascript - 如何使用 javascript 在 Firefox 中的 facebook 中共享图像?

css - JQuery 自动完成主题框未正确放置