JSF+Spring+Hibernate例子(绝对好用)

来源:互联网 发布:国外怎么买淘宝 编辑:程序博客网 时间:2024/06/05 14:17

原创文章,鼓励转载,请务必注明出处,作者:李佳

 

最近项目中用到jsf+spring+hibernate, 顺便做了个小例子,我已经调试通过了,分享给大家.

1.InfoBean

package com.jsf;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.vo.UserVO;
import com.web.bean.UserBean;
import com.bo.UserService;
import com.framework.web.bean.BaseManagedBean;

public class InfoBean extends BaseManagedBean {

 private static final Log log = LogFactory.getLog(InfoBean.class);

 private static final long serialVersionUID = 1L;

 private UserBean userBean = null;

 private String username = null;

 private String email = null;

 private String response = null;

 private long maximum = 0;

 private long minimum = 0;

 private boolean maximumSet = false;

 private boolean minimumSet = false;

 public InfoBean() {
 }

 public String submitPersonInfo() {

  log.info(username);
  log.info(email);
  
  //jsf-spring 1 ok
  //UserService userService = (UserService)getbean("userService");

  //jsf-spring 2 ok
  UserService userService = (UserService) getUserBean().getUserService();

  UserVO userVO = new UserVO();
  userVO.setUsername(username);
  userVO.setEmail(email);

  boolean flag = userService.saveUser(userVO);

  if (flag) {
   setResponse("register success");
   return "success";
  } else {
   setResponse("register failed");
   return "failure";
  }
 }

 public UserBean getUserBean() {

  if (userBean == null) {
   userBean = (UserBean) getWebbean("UserBean");
  }
  return userBean;
 }

 public void setUserBean(UserBean userBean) {
  this.userBean = userBean;
 }

 public void setMaximum(long maximum) {
  this.maximum = maximum;
  this.maximumSet = true;
 }

 public void setMinimum(long minimum) {
  this.minimum = minimum;
  this.minimumSet = true;
 }

 public void setResponse(String response) {
  this.response = response;
 }

 public String getResponse() {
  return null;
 }

 public long getMaximum() {
  return maximum;
 }

 public long getMinimum() {
  return minimum;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }
}

2.UserService

package com.bo;

import com.vo.UserVO;
import org.springframework.dao.DataAccessException;
import java.io.Serializable;


public interface UserService extends Serializable {
   public boolean saveUser(UserVO userVO) throws DataAccessException;
}

3.UserServiceImpl

package com.bo.impl;

import com.bo.UserService;
import com.dao.UserDAO;
import com.vo.UserVO;
import org.springframework.dao.DataAccessException;

public class UserServiceImpl implements UserService {

 private static final long serialVersionUID = 1L;

 private UserDAO userDAO;

 public UserServiceImpl() {
 }

 public boolean saveUser(UserVO userVO) throws DataAccessException {
  return userDAO.saveUser(userVO);
 }
 
 public void setUserDAO(UserDAO userDAO) {
  this.userDAO = userDAO;
 }

 public UserDAO getUserDAO() {
  return userDAO;
 }
}

 

4.UserDAO

package com.dao;

import org.springframework.dao.DataAccessException;
import com.vo.UserVO;
import java.io.Serializable;

public interface UserDAO extends Serializable{
    public boolean saveUser(UserVO userVO)throws DataAccessException;
   
       
}

5.UserDAOImpl

package com.dao.impl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.util.RandomGUID;
import com.vo.UserVO;
import com.dao.UserDAO;
import com.hibernate.UserInfo;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {

 private static final Log log = LogFactory.getLog(UserDAOImpl.class);

 public boolean saveUser(UserVO userVO) throws DataAccessException {
  if (userVO == null) {
   log.error("save User error");
   return false;
  }

  UserInfo userInfo = new UserInfo();
  userInfo.setId(getID());
  userInfo.setUsername(userVO.getUsername().trim());
  userInfo.setEmail(userVO.getEmail().trim());
  this.getHibernateTemplate().save(userInfo);
  
  log.debug("save User ok");
  return true;

 }

 private String getID(){
  return RandomGUID.getInatance();
 }

}

6.UserVO

package com.vo;

import java.io.Serializable;

public class UserVO implements Serializable{
   
    private String username;
    private String email;
   
    public String getEmail(){
        return email;    
    }
   
    public void setEmail(String email){
        this.email = email;    
    }
   
    public String getUsername(){
        return username;    
    }
   
    public void setUsername(String username){
        this.username = username;    
    }
}

7.BaseManagedBean

package com.framework.web.bean;

import java.io.Serializable;

import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.context.ApplicationContext;
import org.springframework.web.jsf.FacesContextUtils;

public class BaseManagedBean implements Serializable{
 
 public static HttpServletRequest request;
 
 public static HttpSession session;
 
 static{
  FacesContext context =FacesContext.getCurrentInstance();
  request = (HttpServletRequest)context.getExternalContext().getRequest();
  session = (HttpSession) context.getExternalContext().getSession(false);
 }
 
 public Object getbean(String beanName){
  ApplicationContext ac = FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());
  return ac.getBean(beanName);
 }
 
 
 public Object getWebbean(String beanname){
  FacesContext context =FacesContext.getCurrentInstance();
  Application app = context.getApplication();
  ValueBinding binding = app.createValueBinding("#{" + beanname + "}");
  Object object = binding.getValue(context);
  return object;
 }

 
 public String getExternalParameter(String parameter){
  FacesContext context =FacesContext.getCurrentInstance();
  return context.getExternalContext().getInitParameter(parameter);
 }
}

8.UserBean

package com.web.bean;

import com.bo.UserService;


public class UserBean {
 
 private UserService userService = null;

 public UserService getUserService() {
  return userService;
 }

 public void setUserService(UserService userService) {
  this.userService = userService;
 }

}

9.UserInfo

package com.hibernate;

import java.io.Serializable;
//import org.apache.commons.lang.builder.ToStringBuilder;

public class UserInfo implements Serializable{
   
    private String id;
   
    private String username;
   
    private String email;
   
    public UserInfo(String id,String username,String email){
       
        this.id = id;
        this.username = username;
        this.email = email;
             
    }
   
    public UserInfo(){
       
    }
   
    public UserInfo(String id){
        this.id = id;    
    }
   
    public String getId(){
        return id;    
    }
   
    public void setId(String id){
        this.id = id;    
    }
   
    public String getEmail(){
        return email;    
    }
   
    public void setEmail(String email){
        this.email = email;    
    }
   
    public String getUsername(){
        return username;    
    }    
   
    public void setUsername(String username){
        this.username = username;    
    }
   
//    public String toString(){
//        return new ToStringBuilder(this).append("id",getId()).toString();    
//    }
   
}

10.LoggerAdvice

package com.framework.aop;

import java.lang.reflect.Method;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Logger;
import org.springframework.aop.AfterReturningAdvice;
import org.springframework.aop.MethodBeforeAdvice;

public class LoggerAdvice implements MethodBeforeAdvice, AfterReturningAdvice {
 
 public void before(Method method, Object[] args, Object target) throws Throwable {
  //web.xml(spring + log4j)
  Logger logger = Logger.getLogger(target.getClass());
  logger.debug("+Class : "+ target.getClass().getName());
  logger.debug("+-------Method : "+ method.getName());
  for(int i=0; i<args.length; i++){
   logger.debug(" +-arg"+ i + " : " + args[i].toString());
  }
 }

 public void afterReturning(Object retuVal, Method method, Object[] args, Object target) throws Throwable {
  //common-logging + log4j
  Log log = LogFactory.getLog(target.getClass());
  if(retuVal != null){
   log.debug("+-------Return : " + retuVal.toString());
  }
 }
}

11.PhaseChecker

package com.framework.web.lifecycle;

import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.ServletException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.jsf.InfoBean;

public class PhaseChecker implements PhaseListener {

 private static final long serialVersionUID = 1L;
 private static final Log log = LogFactory.getLog(PhaseChecker.class);
 
 public void afterPhase(PhaseEvent event) {
  log.info(event);
 }

 public void beforePhase(PhaseEvent event) {
  log.info(event);
  FacesContext context = event.getFacesContext();
  System.out.println("phase run" );
  
  try {
   checkSessionObjects(context);
  } catch (Exception e) {
   e.printStackTrace();
  }
  
 }

 public PhaseId getPhaseId() {
  return PhaseId.RESTORE_VIEW;
 }

 private void checkSessionObjects(FacesContext context)
   throws ServletException {

  Application app = context.getApplication();
  ValueBinding infoBinding = app.createValueBinding("#{InfoBean}");
  InfoBean infoBean = (InfoBean) infoBinding.getValue(context);

  if (null == infoBean /*&& null == inqb*/) {
   infoBean = new InfoBean();
   infoBinding.setValue(context,infoBean);
   
   log.debug("done setting session objects.");
  }
 }
}

 

12.RandomGUID

package com.util;

import java.net.*;
import java.util.*;
import java.security.*;

public class RandomGUID extends Object {

    public String valueBeforeMD5 = "";
    public String valueAfterMD5 = "";
    private static Random myRand;
    private static SecureRandom mySecureRand;

    private static String s_id;

    static {
        mySecureRand = new SecureRandom();
        long secureInitializer = mySecureRand.nextLong();
        myRand = new Random(secureInitializer);
        try {
            s_id = InetAddress.getLocalHost().toString();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

    }

    public RandomGUID() {
        getRandomGUID(false);
    }

    public RandomGUID(boolean secure) {
        getRandomGUID(secure);
    }

    private void getRandomGUID(boolean secure) {
        MessageDigest md5 = null;
        StringBuffer sbValueBeforeMD5 = new StringBuffer();

        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            System.out.println("Error: " + e);
        }

        try {
            long time = System.currentTimeMillis();
            long rand = 0;

            if (secure) {
                rand = mySecureRand.nextLong();
            } else {
                rand = myRand.nextLong();
            }

            sbValueBeforeMD5.append(s_id);
            sbValueBeforeMD5.append(":");
            sbValueBeforeMD5.append(Long.toString(time));
            sbValueBeforeMD5.append(":");
            sbValueBeforeMD5.append(Long.toString(rand));

            valueBeforeMD5 = sbValueBeforeMD5.toString();
            md5.update(valueBeforeMD5.getBytes());

            byte[] array = md5.digest();
            StringBuffer sb = new StringBuffer();
            for (int j = 0; j < array.length; ++j) {
                int b = array[j] & 0xFF;
                if (b < 0x10) sb.append('0');
                sb.append(Integer.toHexString(b));
            }

            valueAfterMD5 = sb.toString();

        } catch (Exception e) {
            System.out.println("Error:" + e);
        }
    }

    public String toString() {
        String raw = valueAfterMD5.toUpperCase();
        StringBuffer sb = new StringBuffer();
        sb.append(raw.substring(0, 8));
        sb.append("-");
        sb.append(raw.substring(8, 12));
        sb.append("-");
        sb.append(raw.substring(12, 16));
        sb.append("-");
        sb.append(raw.substring(16, 20));
        sb.append("-");
        sb.append(raw.substring(20));

        return sb.toString();
    }

    public static String getInatance(){
     RandomGUID myGUID = new RandomGUID();
     return myGUID.toString();
    }
   
    public static void main(String args[]) {
        for (int i=0; i< 100; i++) {
      RandomGUID myGUID = new RandomGUID();
      System.out.println("Seeding String=" + myGUID.valueBeforeMD5);
      System.out.println("rawGUID=" + myGUID.valueAfterMD5);
      System.out.println("RandomGUID=" + myGUID.toString());
      System.out.println("GUID size=" + myGUID.toString().length());
        }
    }
}

13.CommonSessionListener

package com.util;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class CommonSessionListener implements HttpSessionListener{
 
 private static final Log log = LogFactory.getLog(CommonSessionListener.class);
 private static int sessionCount = 0;

 public void sessionCreated(HttpSessionEvent se) {
  sessionCount++;
  System.out.println("sessionCreated:sessionCount = " + sessionCount);
  log.info("sessionCreated:SessionListener " + sessionCount + " Created");
 }

 public void sessionDestroyed(HttpSessionEvent se) {
  if (sessionCount > 0){
   log.info("sessionDestroyed:SessionListener " + sessionCount + " Destroyed");
   sessionCount--;
   System.out.println("sessionDestroyed:sessionCount = " + sessionCount);
  }
 }
}

14.UserInfo.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
 <class name="com.hibernate.UserInfo" table="user">
  <id name="id" type="java.lang.String" column="id">
   <generator class="assigned" />
  </id>
  <property name="username" type="java.lang.String"
   column="username" length="36">
  </property>
  <property name="email" type="java.lang.String" column="email"
   length="60">
  </property>
 </class>
</hibernate-mapping>

15.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
                         "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
 <display-name>TestFrame</display-name>
 <context-param>
  <param-name>javax.faces.CONFIG_FILES</param-name>
  <param-value>/WEB-INF/faces-config.xml</param-value>
 </context-param>
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext.xml</param-value>
 </context-param>
 <context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>/WEB-INF/classes/log4j.properties</param-value>
 </context-param>
 <listener>
  <listener-class>com.util.CommonSessionListener</listener-class>
 </listener>
 <listener>
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
 </listener>
 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 </listener>
 <servlet>
  <servlet-name>log4j</servlet-name>
  <servlet-class>org.springframework.web.util.Log4jConfigServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <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>10</session-timeout>
 </session-config>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <!-- authorize -->
 <security-constraint>
  <web-resource-collection>
   <web-resource-name>SSL Pages</web-resource-name>
   <url-pattern>/*</url-pattern>
   <http-method>GET</http-method>
   <http-method>PUT</http-method>
   <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
   <role-name>BasicRole</role-name>
  </auth-constraint>
  <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
 </security-constraint>
 <!-- authenticate(BASIC,DIGEST,FORM,CLIENT-CERT) -->
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
 <security-role>
  <role-name>BasicRole</role-name>
 </security-role>
 <!-- INNE BACKUP -->
 <!-- security-constraint>
  <web-resource-collection>
   <web-resource-name>SSL Pages</web-resource-name>
   <url-pattern>/apply.start.servlet</url-pattern>
   <url-pattern>/apply.step1.servlet</url-pattern>
   <url-pattern>/apply.step2.servlet</url-pattern>
   <url-pattern>/apply.double.servlet</url-pattern>
   <url-pattern>/apply.td.servlet</url-pattern>
   <url-pattern>/apply.customer.servlet</url-pattern>
   <url-pattern>/apply.night.servlet</url-pattern>
   <url-pattern>/apply.wait.servlet</url-pattern>
   <url-pattern>/apply.final.servlet</url-pattern>
   <url-pattern>/apply.step2.servlet</url-pattern>
   <url-pattern>/apply.step2.servlet</url-pattern>                    
   <http-method>GET</http-method>
   <http-method>PUT</http-method>
   <http-method>POST</http-method>
  </web-resource-collection>
  <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
 </security-constraint>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config-->
</web-app>

16.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
                       "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean
  class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
  <property name="driverClassName">
   <value>org.hsqldb.jdbcDriver</value>
  </property>
  <property name="url">
   <value>jdbc:hsqldb:hsql://localhost</value>
  </property>
  <property name="username">
   <value>sa</value>
  </property>
  <property name="password">
   <value/>
  </property>
 </bean>
 <bean
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" id="sessionFactory">
  <property name="dataSource">
   <ref local="dataSource"/>
  </property>
  <property name="mappingResources">
   <list>
    <value>com/hibernate/UserInfo.hbm.xml</value>
   </list>
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
  </property>
 </bean>
 <bean
  class="org.springframework.orm.hibernate3.HibernateTransactionManager" id="transactionManager">
  <property name="sessionFactory">
   <ref local="sessionFactory"/>
  </property>
 </bean>
 <bean
  class="org.springframework.transaction.interceptor.TransactionInterceptor" id="txInterceptor">
  <property name="transactionManager">
   <ref bean="transactionManager"/>
  </property>
  <property name="transactionAttributes">
   <props>
    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
    <prop key="save*">PROPAGATION_REQUIRED</prop>
   </props>
  </property>
 </bean>
 <bean class="com.framework.aop.LoggerAdvice" id="loggerAdvice"/>
 <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  <property name="interceptorNames">
   <list>
    <value>txInterceptor</value>
    <value>loggerAdvice</value>
    <!-- add new Interceptor -->
   </list>
  </property>
  <!--
  <property name="beanNames">
   <value>*Service,*Manager</value>
  </property>
   -->
  <property name="beanNames">
   <list>
    <idref local="userService"/>
    <!-- add new Service -->
   </list>
  </property>
 </bean>
 <!-- Start UserService -->
 <bean class="com.bo.impl.UserServiceImpl" id="userService">
  <property name="userDAO" ref="userDAO"/>
 </bean>
 <bean class="com.dao.impl.UserDAOImpl" id="userDAO">
  <property name="sessionFactory">
   <ref local="sessionFactory"/>
  </property>
 </bean>
</beans>

17.faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
                              "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
 <managed-bean>
  <managed-bean-name>InfoBean</managed-bean-name>
  <managed-bean-class>com.jsf.InfoBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
  <managed-property>
   <property-name>userBean</property-name>
   <property-class>com.web.bean.UserBean</property-class>
   <value>#{UserBean}</value>
  </managed-property>
  <managed-property>
   <property-name>minimum</property-name>
   <property-class>long</property-class>
   <value>6</value>
  </managed-property>
  <managed-property>
   <property-name>maximum</property-name>
   <property-class>long</property-class>
   <value>18</value>
  </managed-property>
 </managed-bean>
 <managed-bean>
  <managed-bean-name>UserBean</managed-bean-name>
  <managed-bean-class>com.web.bean.UserBean</managed-bean-class>
  <managed-bean-scope>application</managed-bean-scope>
  <managed-property>
   <property-name>userService</property-name>
   <property-class>com.bo.UserService</property-class>
   <value>#{userService}</value>
  </managed-property>
 </managed-bean>
 <navigation-rule>
  <description>JSF Home Page</description>
  <from-view-id>/example/home.jsp</from-view-id>
  <navigation-case>
   <description>success</description>
   <from-outcome>success</from-outcome>
   <to-view-id>/example/success.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <description>failure</description>
   <from-outcome>failure</from-outcome>
   <to-view-id>/example/failure.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/example/success.jsp</from-view-id>
  <navigation-case>
   <from-outcome>su</from-outcome>
   <to-view-id>/example/home.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/example/failure.jsp</from-view-id>
  <navigation-case>
   <from-outcome>su</from-outcome>
   <to-view-id>/example/home.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <application>
  <variable-resolver>
   org.springframework.web.jsf.DelegatingVariableResolver
  </variable-resolver>
  <locale-config>
   <default-locale>zh_CN</default-locale>
  </locale-config>
 </application>
 <lifecycle>
  <phase-listener>com.framework.web.lifecycle.PhaseChecker</phase-listener>
 </lifecycle>
</faces-config>

18.faces-config.xml.bak_1

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
                              "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
 <managed-bean>
  <description>InfoBean</description>
  <managed-bean-name>InfoBean</managed-bean-name>
  <managed-bean-class>com.jsf.InfoBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
  <managed-property>
   <property-name>minimum</property-name>
   <property-class>long</property-class>
   <value>6</value>
  </managed-property>
  <managed-property>
   <property-name>maximum</property-name>
   <property-class>long</property-class>
   <value>18</value>
  </managed-property>
 </managed-bean>
 <navigation-rule>
  <description>JSF Home Page</description>
  <from-view-id>/example/home.jsp</from-view-id>
  <navigation-case>
   <description>success</description>
   <from-outcome>success</from-outcome>
   <to-view-id>/example/success.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <description>failure</description>
   <from-outcome>failure</from-outcome>
   <to-view-id>/example/failure.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/example/success.jsp</from-view-id>
  <navigation-case>
   <from-outcome>su</from-outcome>
   <to-view-id>/example/home.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/example/failure.jsp</from-view-id>
  <navigation-case>
   <from-outcome>su</from-outcome>
   <to-view-id>/example/home.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <application>
  <variable-resolver>
   org.springframework.web.jsf.DelegatingVariableResolver
  </variable-resolver>
  <locale-config>
   <default-locale>zh_CN</default-locale>
  </locale-config>
 </application>
</faces-config>

19.home.jsp

<%@ page contentType="text/html; charset=gbk" %> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<html>
<head>
<title>
用户注册
</title>
</head>
<br>
  <f:view>
  <h:form id="helloForm" >
        <table border="10" align="center"
            bordercolor="#0099CC" cellpadding="6" bordercolorlight="#999999">
              <tr>
                  <td colspan="2" bgcolor="#66CCFF">输入用户注册信息:</td>
              </tr>
              <tr>
                <td>
                  <div align="right">用户名</div>
                </td>
                <td>
                    <h:inputText id="username" value="#{InfoBean.username}">
                        <f:validateLength minimum="#{InfoBean.minimum}" maximum="#{InfoBean.maximum}" />
                    </h:inputText>
                </td>
              </tr>
              <tr>
                <td>
                  <div align="right">E_mail</div>
                </td>
                <td>
                        <h:inputText id="email" value="#{InfoBean.email}"/>
                </td>
              </tr>
              <tr>
                  <td colspan="2" bgcolor="#FFFF40">
                      <span>    
                            <h:message id="message" for="username"/>
                      </span>
                  </td>
              </tr>
              <tr>
                  <td align="center" colspan="2">
                        <h:commandButton id="submit" action="#{InfoBean.submitPersonInfo}" value="提交" />
                  </td>
              </tr>    
        </table>
  </h:form>
  </f:view>
</html>

20.success.jsp

<%@ page contentType="text/html; charset=gbk" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>
用户注册成功
</title>
</head>
<body bgcolor="white">
  <f:view>
    <h:form id="responseForm">
        <h:graphicImage id="successImg"
            url="images/form-success.jpg" alt="注册成功!"/>
        <h2>
        <h:outputText id="result"
                  value="#{InfoBean.response}"/></h2>  
            <h:commandButton id="back"
                value="返回" action="su"/>
            <p>
      </h:form>
  </f:view>
</html>

21.failure.jsp

<%@ page contentType="text/html; charset=gbk" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
<title>
用户注册失败
</title>
</head>
<body bgcolor="white">
  <f:view>
    <h:form id="responseForm">
        <h:graphicImage id="successImg"
            url="images/form-error.jpg" alt="注册失败!"/>
        <h2>
        <h:outputText id="result"
                  value="#{InfoBean.response}"/></h2>  
            <h:commandButton id="back"
                value="返回" action="su"/>
            <p>
      </h:form>
  </f:view>
</html>

22.index.jsp

<html>
<head>
</head>
<body>
<jsp:forward page="/example/home.faces" />
</body>
</html>

23.log4j.properties

log4j.rootLogger=DEBUG, CONSOLE, FILE, ROLLING_FILE
log4j.addivity.org.apache=true


#console
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=ERROR
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n


#A1
#log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.A1.Threshold=ERROR
#log4j.appender.A1.File=C:/eclipseworkspace/TestFrame/A1.log
#log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log'
#log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout


#file
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.File=C:/eclipseworkspace/TestFrame/FILE.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}/:%L - %m%n
# Use this layout for LogFactor 5 analysis


#file rolling
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=DEBUG
log4j.appender.ROLLING_FILE.File=C:/eclipseworkspace/TestFrame/ROLLING_FILE.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.ROLLING_FILE.MaxFileSize=100KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=5
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

24.weblogic.xml

<!DOCTYPE weblogic-web-app PUBLIC    "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>

  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>

 <context-root>/</context-root>
 
 <security-role-assignment>
  <role-name>BasicRole</role-name>
  <principal-name>Administrators</principal-name>
 </security-role-assignment>
 
</weblogic-web-app>

 

原创粉丝点击