我在JSP頁面上下文以下對象的實例:獲得布爾屬性從對象JSP EL
Class User{
private boolean isAdmin;
public boolean isAdmin(){return isAdmin}
}
我怎樣才能查詢從EL的isAdmin財產?這似乎並不工作:
${user.admin}
也沒有這樣的:
${user.isAdmin}
的感謝!
-Morgan
我在JSP頁面上下文以下對象的實例:獲得布爾屬性從對象JSP EL
Class User{
private boolean isAdmin;
public boolean isAdmin(){return isAdmin}
}
我怎樣才能查詢從EL的isAdmin財產?這似乎並不工作:
${user.admin}
也沒有這樣的:
${user.isAdmin}
的感謝!
-Morgan
好的。我真笨。投下這個問題,嘲笑我等等。問題出在Admin()委託給的方法中。該方法中存在空指針異常。然而,在我的辯護中,我會說我得到的堆棧跟蹤有點不清楚,並且看起來像是EL問題,而不是我的代碼中的簡單空指針。
醋,你的保證,即使沒有財產的Admin()也能幫助我解決這個問題。感謝那。
javax.el.ELException: java.lang.NullPointerException
at javax.el.BeanELResolver.getValue(BeanELResolver.java:298)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1001)
at org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp._jspx_meth_c_forEach_1(org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp:452)
at org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp._jspx_meth_c_forEach_0(org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp:399)
at org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp._jspx_meth_form_form_0(org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp:348)
at org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp._jspService(org.apache.jsp.WEB_002dINF.jsp.managepermissions_jsp:197)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:363)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:240)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:252)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1173)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:901)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:523)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:463)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
試試這個:
${user.Admin}
以防萬一資本的問題。有時EL會做非顯而易見的事情。但是,我通常能夠在我的el中使用相當於${user.admin}
的值。看看我自己的代碼,我有很多例子在它的工作原理上做了明顯的事情。
你有沒有在你的類以下方法:
public boolean isAdmin(){return isAdmin}
public void isAdmin(boolean newValue) { ... }
或你有隻吸?如果我的代碼,我注意到我沒有這樣做。我制定者開始時都這樣set
:
public boolean isAdmin(){return isAdmin}
public void setAdmin(boolean newValue) { ... }
,我能夠使用明顯小寫解決${user.admin}
在我的JSP。這可能取決於您使用的EL處理器。
注意:後來增加,因爲人們仍然投票,顯然從來沒有遇到過這種情況的例子。從我自己的JSP造成我問這個問題的一個例子是,我有一個方法:
public int getLANSomething() { ... }
,我訪問這個在EL如下:${agent.LANSomething}
規則似乎是getXXXyyy
其中XXX
全爲大寫,你必須在EL中使用大寫字母來訪問它。至少在我用過的Tomcat版本4-6中。
首先,您可能需要用戶類的getter。如果這沒有幫助,{user.admin}應該可以工作,所以我會檢查你的JSP中是否正確引用了bean。
希望有所幫助。
簡單。
對我來說,只是改變isStuff讓getStuff一直工作。
當然,這可能與某些命名慣例,獨立聲明,人權等有關。但它爲我工作。
這裏的IntelliJ(和我)會怎麼做:
private boolean isAdmin;
public boolean isAdmin() {
return isAdmin;
}
public void setAdmin(boolean admin) {
isAdmin = admin;
}
都能跟得上。謝謝你的想法。 – morgancodes 2009-02-05 23:17:52
看看我最近的編輯。 – Eddie 2009-02-05 23:21:10
$ {user.Admin}在這裏根本沒有意義。 – 2009-02-06 03:12:57