在Tomcat7上进行第一次测试时,从Servlet blank调用JSF页面
尽管我已经爬过了,但是当我在servlet中创建的第一个JSF页面被调用时,我仍然只能得到一个空白页面。它通过IntellijIDEA部署在Tomcat7服务器上。在错误日志级别“all”上,我没有收到任何错误消息。浏览器中的源代码保持完全为空。似乎没有调用FacesServlet,但我认为这不可能是因为url映射,对我来说似乎没问题!?? 是否还有其他可能,比如查看错误日志 web.xml:在Tomcat7上进行第一次测试时,从Servlet blank调用JSF页面,jsf,tomcat,servlets,jsf-2,Jsf,Tomcat,Servlets,Jsf 2,尽管我已经爬过了,但是当我在servlet中创建的第一个JSF页面被调用时,我仍然只能得到一个空白页面。它通过IntellijIDEA部署在Tomcat7服务器上。在错误日志级别“all”上,我没有收到任何错误消息。浏览器中的源代码保持完全为空。似乎没有调用FacesServlet,但我认为这不可能是因为url映射,对我来说似乎没问题!?? 是否还有其他可能,比如查看错误日志 web.xml: <?xml version="1.0" encoding="UTF-8"?> <we
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<context-param>
<param-name>incomingURLs</param-name>
<param-value>http://localhost:8080,http://localhost:63342,https://localhost:63342</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name>
<param-value>*.xhtml</param-value>
</context-param>
<servlet>
<servlet-name>Diagapp</servlet-name>
<servlet-class>com.brainsee.diagapp.DispatcherServlet</servlet-class>
<multipart-config>
<location>/tmp</location>
<max-file-size>20848820</max-file-size>
<max-request-size>418018841</max-request-size>
<file-size-threshold>1048576</file-size-threshold>
</multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>Diagapp</servlet-name>
<url-pattern>/diagapp</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Logoff</servlet-name>
<servlet-class>com.brainsee.diagapp.Logoff</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Logoff</servlet-name>
<url-pattern>/logoff</url-pattern>
</servlet-mapping>
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.brainsee.diagapp.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/diagapp/admin</url-pattern>
</filter-mapping>
<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>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
来自同一目录中的jsp文件
WEB-INF/faces-config.xml:
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<managed-bean>
<managed-bean-name>diagnosisBean</managed-bean-name>
<managed-bean-class>com.brainsee.diagapp.beans.DiagnosisBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
诊断Bean
com.brainsee.diagapp.beans.DiagnosisBean
一场
以及诊断步骤:
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;
import java.util.List;
@ManagedBean
@ViewScoped
public class DiagnosisBean implements Serializable {
private List<Diagnosis> list;
private Diagnosis diagnosis = new Diagnosis();
private boolean edited;
@PostConstruct
public void init() {
list = DiagnosisDAO.getAll();
}
public void add() {
DiagnosisDAO.insert(diagnosis);
diagnosis = new Diagnosis();
}
public void edit(Diagnosis diagnosis) {
this.diagnosis = diagnosis;
edited = true;
}
public void save() {
DiagnosisDAO.update(diagnosis);
diagnosis = new Diagnosis();
edited = false;
}
public void delete(Diagnosis diagnosis) {
DiagnosisDAO.delete(diagnosis);
}
public List<Diagnosis> getList() {
return list;
}
public Diagnosis getDiagnosis() {
return diagnosis;
}
public boolean isEdited() {
return edited;
}
}
import javax.annotation.PostConstruct;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.ViewScoped;
导入java.io.Serializable;
导入java.util.List;
@ManagedBean
@视域
公共类DiagnostisBean实现可序列化{
私人名单;
私人诊断=新诊断();
私有布尔编辑;
@施工后
公共void init(){
list=DiagnosisDAO.getAll();
}
公共无效添加(){
诊断o.插入(诊断);
诊断=新诊断();
}
公共无效编辑(诊断){
诊断=诊断;
编辑=真;
}
公共作废保存(){
诊断更新(诊断);
诊断=新诊断();
编辑=假;
}
公共无效删除(诊断){
诊断dao.删除(诊断);
}
公共列表getList(){
退货清单;
}
公共诊断getDiagnosis(){
返回诊断;
}
公共布尔值编辑(){
返回编辑;
}
}
在我的依赖项中,Mojarra-1.2和javax.faces:javax faces api:2.2包含在“提供的”范围下(将其更改为“编译”不会改变任何内容)。…Arrrgh只是查看了一下,发现我使用的是Servlet 3.0功能,但将过时的Mojarra-1.2作为库。更新了库,瞧,它成功了。所以RTFM:)
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<managed-bean>
<managed-bean-name>diagnosisBean</managed-bean-name>
<managed-bean-class>com.brainsee.diagapp.beans.DiagnosisBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;
import java.util.List;
@ManagedBean
@ViewScoped
public class DiagnosisBean implements Serializable {
private List<Diagnosis> list;
private Diagnosis diagnosis = new Diagnosis();
private boolean edited;
@PostConstruct
public void init() {
list = DiagnosisDAO.getAll();
}
public void add() {
DiagnosisDAO.insert(diagnosis);
diagnosis = new Diagnosis();
}
public void edit(Diagnosis diagnosis) {
this.diagnosis = diagnosis;
edited = true;
}
public void save() {
DiagnosisDAO.update(diagnosis);
diagnosis = new Diagnosis();
edited = false;
}
public void delete(Diagnosis diagnosis) {
DiagnosisDAO.delete(diagnosis);
}
public List<Diagnosis> getList() {
return list;
}
public Diagnosis getDiagnosis() {
return diagnosis;
}
public boolean isEdited() {
return edited;
}
}