使用JSF+Spring整合

一、下载
进官方网站 http://jsf-spring.sourceforge.net,下载lib

二、参考quickstart配置相应文件
http://jsf-spring.sourceforge.net/quickstart.shtml
最终配置结果如下
web.xml
<? xml version="1.0" encoding="UTF-8" ?>
< web-app  xmlns ="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"  version ="2.4"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
    
< context-param >
        
< param-name > javax.faces.CONFIG_FILES </ param-name >
        
< param-value >
            /WEB-INF/classes/faces/faces-config.xml, 
            /WEB-INF/classes/faces/faces-config-beans.xml
        
</ param-value >
    
</ context-param >
    
< context-param >
        
< param-name > contextConfigLocation </ param-name >
        
< param-value >
            classpath*:spring/applicationContext-*.xml
        
</ param-value >
    
</ context-param >

    
< servlet >
        
< servlet-name > Faces Servlet </ servlet-name >
        
< servlet-class > javax.faces.webapp.FacesServlet </ servlet-class >
        
< load-on-startup > 0 </ load-on-startup >
    
</ servlet >
    
< servlet-mapping >
        
< servlet-name > Faces Servlet </ servlet-name >
        
< url-pattern > *.faces </ url-pattern >
    
</ servlet-mapping >
    
< listener >
        
< listener-class >
            org.springframework.web.context.request.RequestContextListener
        
</ listener-class >
    
</ listener >
    
< listener >
        
< listener-class >
            org.springframework.web.context.ContextLoaderListener
        
</ listener-class >
    
</ listener >
    
< listener >
        
< listener-class > de.mindmatters.faces.spring.context.ContextLoaderListener </ listener-class >
    
</ listener >
        
</ web-app >

请注意以上listener的顺序,如果位置不同可能出现找不到在spring中定义的bean。请按以上顺序配置即可。

根据quitstart配置完之后可能还有如下异常:
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: de.mindmatters.faces.spring.factory.BeansEvaluationException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uiBean': Scope 'request' is not active; nested exception is java.lang.IllegalStateException: No thread-bound request: use RequestContextFilter
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:532)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:147)
de.mindmatters.faces.lifecycle.RenderResponsePhase.executePhase(RenderResponsePhase.java:45)
de.mindmatters.faces.lifecycle.AbstractPhase.execute(AbstractPhase.java:37)
de.mindmatters.faces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:166)
de.mindmatters.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:226)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
然后再把这个listener加上
<listener>
  <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
 </listener>

就ok了。

可选
如果还有问题,在faces-config.xml中添加
<application>
     <variable-resolver>
      org.springframework.web.jsf.DelegatingVariableResolver
     </variable-resolver>
  <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
 </application> 

转自网络

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值