我有自定义标签,其中包含带有 text input
和 submit
的 form
。我想使用 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/