Я действительно новичок в JSF, но вот моя проблема:ВНИМАНИЕ: # {Generate.viewReportPDF}: javax.el.PropertyNotFoundException: Target недостижим, идентификатор «Generate» решил обнулить
WARNING: #{Generate.viewReportPDF}: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'Generate' resolved to null
Я искал и попробовать много вещей, но это не сработало, поэтому я прошу вашей помощи:
Вот мой Generate.java в пакете com.test:
package com.test;
import javax.faces.context.FacesContext;
import javax.inject.Scope;
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.TransformerException;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import javax.faces.bean.ManagedBean;
@ManagedBean
public class Generate {
...
public void viewReportPDF() throws IOException {
...
}
}
Вот мой web.xml (в WEB -INF)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/init.jsp</welcome-file>
</welcome-file-list>
</web-app>
Здесь мои лица-config.xml (в WEB-INF):
<managed-bean>
<managed-bean-name>Generate</managed-bean-name>
<managed-bean-class>
com.test.Generate
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
здесь мой init.jsp:
<jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page">
<jsp:directive.page contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8" />
<f:view>
<html>
<head>
<title>Test iReport With JSF</title>
</head>
<body style="background-color: #fff4db">
<h:form id="reportForm" target="report">
<h:commandButton id="pdfButton" value="Visualiser PDF"
styleClass="buttonStyle" action="#{Generate.viewReportPDF}" />
</h:form>
</body>
</html>
</f:view>
</jsp:root>
И когда я бегу у меня есть эта ошибка:
ВНИМАНИЕ: # {Generate.viewReportPDF}: javax.el.PropertyNotFoundException: Targ et Unreachable, идентификатор «Generate» разрешен к null
Спасибо за помощь, но она по-прежнему не работает, я добавил @SessionScoped, и я переименовал '# {Generate.viewReportPDF}' в '# {generate.viewReportPDF}'. И теперь у меня такая же ошибка сгенерировать вместо Generate. – Louis
Мое плохое! Я удалил конфигурацию управляемого bean-компонента в faces-config.xml, и теперь все работает! Спасибо – Louis
Добро пожаловать :) – BalusC