我想填充selectOneMenu和来自我的DataBase 中的字段,然后在另一个请求SQL中使用所选值。 为了解我有我的selectOneMenu从我的数据填充,但我不知道如何检索选定的值,并将其显示到另一个页面。错误是: org.apache.jasper.JasperException:发生异常处理JSP页面/Result.jsp 堆栈跟踪: 在org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553) 在组织.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:442)如何将页面JSF中的值(从selectOneMenu中选择)传递给另一个
另外我想写一个干净的代码,我想创建类连接并使用它连接一次在第一页并断开连接在最后一页(当我完成时)。
豆:
public class BeanTools {
private List<SelectItem> mesElements;
private String maValeur;
public PreparedStatement st;
Connectionx con = new Connectionx(); **//IF I do that on N page I will have N connection!!**
Connection cx = (Connection) con.Connx();
public BeanTools() {
}
public String getMaValeur() {
return maValeur;
}
public void setMaValeur(String maValeur) {
this.maValeur = maValeur;
}
public void setMesElements(List<SelectItem> mesElements) {
this.mesElements = mesElements;
}
public Iterable<String> remplireItem() throws ClassNotFoundException, SQLException
{
String sql;
sql ="select issuestatus.pname from issuestatus;";
System.out.println("sql");
st=(PreparedStatement) cx.prepareStatement(sql);
ResultSet rs1 = st.executeQuery();System.out.println("execute");
String nbb;
ArrayList<String> list = new ArrayList<String>();
while(rs1.next())
{
nbb = rs1.getString("pname");
System.out.println(nbb);
list.add(nbb);
System.out.println("list"+list.toString());
}
return list;
}
public List<SelectItem> getMesElements() throws SQLException, ClassNotFoundException {
if (mesElements == null) {
mesElements = new ArrayList<SelectItem>();
for (String val : remplireItem()) {
mesElements.add(new SelectItem(val));
}
}
return mesElements;
}
}
首先JSF页面:
<h:form id="form">
Issue status 2 :<h:selectOneMenu style="width:200px" value="#{BeanTools.maValeur}" >
<f:selectItems value="#{BeanTools.mesElements}"/>
</h:selectOneMenu>
<h:commandButton action="submit" value="submit"/>
</h:form>
二JSF页面:
<body>
<h:outputText value="#{BeanTools.maValeur}" />
</body>
面孔配置:
<managed-bean>
<managed-bean-name>BeanTools</managed-bean-name>
<managed-bean-class>KPIs.BeanTools</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/welcomeJSF.jsp</from-view-id>
<navigation-case>
<from-outcome>submit</from-outcome>
<to-view-id>/Result.jsp</to-view-id>
</navigation-case>
</navigation-rule>
类连接:
public class Connectionx {
public Connection cx=null;
public Statement st;
public Connectionx() {}
public Connection Connx()
{
System.out.println("enregister le driver");
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception ex)
{
System.err.println("Erreur lors du chargement du driver"+ex.getMessage());
}
try {
/** Connection */
cx = (Connection) DriverManager.getConnection ("jdbc:mysql://localhost/jiradb","","");
}
catch(SQLException ex)
{
System. err. println("Error ") }
return cx;
}
整个堆栈跟踪:
org.apache.jasper.JasperException: An exception occurred processing JSP page /Result.jsp at line 19
16: <body>
17: <h1>Hello World!</h1>
18:
19: <h:outputText value="#{BeanTools.maValeur}" />
20:
21: </body>
22: </html>
Stacktrace:
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:553)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:442)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546)
at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363)
at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.lang.IllegalStateException: Component [email protected] not expected type. Expected: javax.faces.component.UIOutput. Perhaps you're missing a tag?
at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:907)
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
at org.apache.jsp.Result_jsp._jspService(Result_jsp.java:84)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
... 38 more
Caused by: java.lang.IllegalStateException: Component [email protected] not expected type. Expected: javax.faces.component.UIOutput. Perhaps you're missing a tag?
at com.sun.faces.taglib.html_basic.OutputTextTag.setProperties(OutputTextTag.java:126)
at javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:690)
at javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1311)
at com.sun.faces.taglib.html_basic.OutputTextTag.doStartTag(OutputTextTag.java:163)
at org.apache.jsp.Result_jsp._jspx_meth_h_005foutputText_005f0(Result_jsp.java:103)
at org.apache.jsp.Result_jsp._jspService(Result_jsp.java:73)
... 41 more
尽管代码没有公开最佳实践,但它应该可以工作。你面临的问题是什么?当你按下按钮时会发生什么?或者是真正的问题*实际上*(与您在标题中提到的内容相反)“请检查并为我重写此代码”? – BalusC 2011-06-07 14:44:56
您已编辑该问题以添加异常消息和“Connection”类。但是如果没有整个堆栈跟踪,这是没用的。带有根本原因的堆栈跟踪是异常最重要的部分。它包含答案。请注意代码格式化规则,您的'Connection'类代码格式不正确。 – BalusC 2011-06-07 14:51:18