![](/img/trans.png)
[英]unable to send or pass object arraylist from servlet to jsp using jstl
[英]Unable to bind value from java bean to jsp using jstl
我有一个在我的bean中设置的String getter和setter。
我试图像这样使用jstl在我的jsp中获取值:
<jsp:useBean class="com.test.MyBean" id="results" scope="request"/>
<script type="text/javascript">
function setMyFields(){
var flag="<c:out value='${results.sdateFlag}'/>";
alert(flag);
var text_box = document.getElementById('mySelectedDate');
if(flag=="true"){
text_box.setAttribute('disabled', 'disabled');
}
}
window.onload = setMyFields;
</script>
我已经在我的jsp中导入了jstl核心。
但是当我这样做时,我得到这样的错误:
javax.servlet.ServletException: Unable to find a value for "sdateFlag" in object of class "com.test.MyBean" using operator "."
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:660)
at com.ibm._jsp._pageMyAmount._jspService(_pageMyAmount.java:306)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:87)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1101)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:569)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:226)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:321)
但是我一直在使用Java调试器调试Java类,并且似乎正在设置该值。 那为什么没有得到价值呢?
编辑:这些是我的豆的安装和获取:
public void setDateFlag(String b) { sDateFlag = b; }
public String isDateFlag() { return sDateFlag; }
怎么了 我想念什么吗?
您将dateFlag
视为布尔属性,但实际上它是String
。 因此,您的“ getter”应称为getDateFlag
,而不是isDateFlag
。 如前所述, isPropertyName
语法仅适用于boolean
类型的属性。
另外,实际上并不需要<c:out value='${results.dateFlag}'/>
。 您应该能够简单地执行${results.dateFlag}
。
因此,我已解决问题,这是一个奇怪的解决方案。 看起来的问题是,任何声明的变量都必须遵循Java标准。 我的问题是,我在原始专有代码中给了变量名称sDateFlag
,它不遵循Java命名约定。 当我删除它并将其作为flag
,它开始工作。 我使用下面的链接JSTL研发了答案。 尽管它不是完全正确的,但它使我找到了问题的根本原因。 我想向所有答复我的人表示感谢,以使这一过程变得容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.