![](/img/trans.png)
[英]I can pass a variable from a JSP scriptlet to JSTL but not from JSTL to a JSP scriptlet without an error
[英]Set JSTL condition from a JSP scriptlet, then pass to java script
好。 我不确定这是否真的是我的问题的目标,但是我确实在试图了解如何解决我的问题。 我一直遇到障碍。 我试图将布尔变量从scriplet传递给JSTL,然后调用js函数以读取其真假。 这是我到目前为止的内容:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!--Take out after testing -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head></head>
<body>
<form name="myForm" action="test.html">
----
<% if (myJavaFunction.FormIsChanged() && myJavaFunction.ErrorCount()>0) {%>
<br />
<%@include file="/countallerrors.jsp"%>
<br />
<% } %>
<c:set var="ErrorPresent" value="false"/>
</form>
</body>
</html>
基本上,我的问题是如何将我的“ ErrorPresent”变量设置为等于(myJavaFunction.FormIsChanged() && myJavaFunction.ErrorCount()>0)
?
我是JSTL的新手,今天经过一番研究,我发现使用scriptlet并不是一种好的做法,因此我想尝试一下是否可以使用JSTL做到这一点。 一旦我使JSTL布尔变量起作用,我想传递给Java脚本函数,该函数将在提交表单之前确定表单是否有错误。 任何方向将不胜感激。
谢谢,娜娜
您是正确的,使用scriptlet通常不是一个好习惯-最好编写特定的标签来封装业务逻辑。 这有助于将演示文稿与控制代码分开。
但是要完成您想要的操作,请尝试以下操作:
<% boolean errorPresent = myJavaFunction.formIsChanged() && myJavaFunction.errorCount()>0; %>
变量errorPresent
现在可用于页面范围,并且可以使用普通的JSTL插值进行引用,例如<p>errorPresent: ${errorPresent}</p>
在另一文体注:Java的风格是将变量和方法camelCased
首字母小写。 类名称应为带有大写字母的MixedCase
。 我上面的示例纠正了这一点。 (常量应为ALL_CAPS_WITH_UNDERSCORES
)
我认为您正在寻找的答案是:
<c:set var="ErrorPresent" value="${(myJavaFunction.FormIsChanged() && myJavaFunction.ErrorCount()>0)}"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.