天天看點

(繼續搬)struts日期格式的轉換以及hibernate中session的關閉在xml中的配置

1.struts日期格式的轉換
package cn.sxx.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class DateConverter extends StrutsTypeConverter {

    @Override
    public Object convertFromString(Map map, String[] vals, Class class1) {
        Date date = null;
        if(vals != null && vals.length > 0){
            String dateStr =  vals[0];
            if(StringUtils.isNotBlank(dateStr) && class1 == Date.class){
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    date = sdf.parse(dateStr);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        }
        
        return date;
    }

    @Override
    public String convertToString(Map map, Object obj) {
        String result = "";
        if(obj != null && obj.getClass() == Date.class){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            result = sdf.format(obj);
        }
        return result;
    }

}      

配置檔案:xwork-conversion.properties的内容為:

java.util.Date=DateConverter 的全路徑

 2.hibernate中session的關閉在xml中的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Struts Blank</display-name>
    <!-- 
    防止hibernate的session關閉問題,主要應用與延遲加載 .spring在管理session,把事務切分在service層,
    目前service方法開始調用時,會開啟一個session。service執行完畢,就會關閉session。
    如果關閉了session,就不會有延遲加載。openSessionInViewerFilter讓session不被關閉
    openSessionInViewerFilter一定要在struts過濾器的上面,否則會報出no session的錯誤。
    -->
    <filter>
        <filter-name>openSessionInViewerFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>openSessionInViewerFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 
        伺服器啟動時該過濾器會被執行個體化,init方法會被調用,然後就會讀取配置檔案。
     -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 
        spring 的容器一定是伺服器已啟動就建立,spring提供搞一個監聽器,專門做ioc容器的初始化
     -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
    <!-- 
        指定spring檔案的位置,給上面的listener
     -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:ApplicationContext.xml</param-value>
    </context-param>

    
  
</web-app>      

轉載于:https://www.cnblogs.com/Mr-Dxin/p/11090624.html