2011-01-19 71 views
2

我再次關於JSF。這一次,我還有一個JSF頁面,看起來像:使用JSF設置標準HTML標籤的屬性

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> 
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <f:loadBundle var="messages" basename="ch.bfh.web2.stundenplan.Messages"/> 
    <head> 
     <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/style.css"> 
     <script type="text/javascript" src="${pageContext.request.contextPath}/script.js"> </script> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Insert title here</title> 
    </head> 
    <body> 
     <f:view> 
      <h1><h:outputText value="#{messages.graphicalTitle}"/><h:commandButton value="#{messages.btnBack }" type="submit" action="return"></h:commandButton></h1> 
      <h:outputText value="#{displayCalendarBean.text}"></h:outputText> 
      <iframe src="#{displayCalendarBean.calendarSource }" style=" border-width:0 " width="800" height="600" frameborder="0" scrolling="no"></iframe> 
     </f:view> 
    </body> 
</html> 

這一次,JSF抱怨的iframe。我真正想要做的是類似

<iframe src="someUrl.php?param1=#{someBean.someProperty}&param2=#{someBean.someProperty2}"></iframe> 

但我想也許它不工作的方式。所以我在bean中生成了整個屬​​性,並試圖將它完全放在那裏。

我需要做些什麼來取代EL表達式?


編輯: 錯誤: org.apache.jasper.JasperException: /displayCalendar.jsp(17,16) #{...} is not allowed in template text

我使用JSF 2.0動態Web模塊2.5和Java 1.5。這不是來自eclipse,而是顯示MyFaces的錯誤頁面。我可以發佈組件樹,但我認爲它不會在這裏改變任何東西。

堆棧跟蹤:

javax.faces.FacesException: org.apache.jasper.JasperException: /displayCalendar.jsp(17,16) #{...} is not allowed in template text 
at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241) 
at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156) 
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:258) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Thread.java:662) 
Caused by: org.apache.jasper.JasperException: /displayCalendar.jsp(17,16) #{...} is not allowed in template text 
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) 
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) 
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:102) 
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:706) 
at org.apache.jasper.compiler.Node$ELExpression.accept(Node.java:958) 
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) 
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411) 
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865) 
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530) 
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) 
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411) 
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417) 
at org.apache.jasper.compiler.Node$Root.accept(Node.java:495) 
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) 
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1763) 
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) 
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) 
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) 
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) 
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) 
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:368) 
at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:94) 
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:66) 
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239) 
... 13 more 

也許有另一種方式:我想用publish tools使用谷歌日曆API。任何更好的方式來做到這一點?

回答

2

模板文本中的延遲EL #{...}僅當您使用Facelets(JSP的後繼者)時才被允許。改爲使用${...}。它不會自動創建託管bean,但如果託管bean在代碼之前已由#{...}自動創建,它將會正常工作。

+0

工程就像一個魅力。再次感謝很多! – Atmocreations 2011-01-20 18:39:12