web.xml?
// 這里不需要配置字符過濾,網上有的例子加了,實際上
webwork.properties里設置如下就可以了頁面也是GBK
webwork.locale=zh_CN
webwork.i18n.encoding=GBK
---------------------------
<!
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
>
??
<
context-param
>
?????
<
param-name
>
contextConfigLocation
</
param-name
>
????
<
param-value
>
/WEB-INF/classes/applicationContext.xml
</
param-value
>
?
</
context-param
>
?
<
listener
>
??
<
listener-class
>
???? org.springframework.web.context.ContextLoaderListener
?? </listener-class>
?</listener>
?<listener>
??<listener-class>
???? com.atlassian.xwork.ext.ResolverSetupServletContextListener
?? </listener-class>
?</listener>
????<!--
????<servlet>
????<servlet-name>context</servlet-name>
?????????????<servlet-class>
??????????????? org.springframework.web.context.ContextLoaderServlet
???????????? </servlet-class>
?????????????<load-on-startup>1</load-on-startup>
?????</servlet>
?????-->
????<servlet>
????????<servlet-name>webwork</servlet-name>
????????<servlet-class>
??????????? com.opensymphony.webwork.dispatcher.ServletDispatcher
???????? </servlet-class>
????????<load-on-startup>3</load-on-startup>
????</servlet>
?<servlet>
??<servlet-name>freemarker</servlet-name>
??<servlet-class>
????? com.opensymphony.webwork.views.freemarker.FreemarkerServlet
?? </servlet-class>
??<load-on-startup>10</load-on-startup>
?</servlet>
????<servlet-mapping>
????????<servlet-name>webwork</servlet-name>
????????<url-pattern>*.action</url-pattern>
????</servlet-mapping>
?<servlet-mapping>
??<servlet-name>freemarker</servlet-name>
??<url-pattern>*.ftl</url-pattern>
?</servlet-mapping>
????<welcome-file-list>
????????<welcome-file>index.html</welcome-file>
????</welcome-file-list>
????<taglib>
????????<taglib-uri>webwork</taglib-uri>
????????<taglib-location>/WEB-INF/webwork.tld</taglib-location>
????</taglib>
</web-app>
---------------------------
xwork.xml
==================---------------------------------------------
<?
xml?version="1.0"
?>
<!
DOCTYPE?xwork?PUBLIC?"-//OpenSymphony?Group//XWork?1.0//EN"
????????? "http://www.opensymphony.com/xwork/xwork-1.0.dtd"
>
<
xwork
>
??
<
include?
file
="webwork-default.xml"
/>
????
<
package?
name
="users"
?extends
="webwork-default"
????????externalReferenceResolver
=
?????????????????????? "com.atlassian.xwork.ext.SpringServletContextReferenceResolver"
>
????????
<
interceptors
>
????????????
<
interceptor?
name
="reference-resolver"
?????????????? class
="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"
/>
????????????
<
interceptor-stack?
name
="myDefaultWebStack"
>
????????????????
<
interceptor-ref?
name
="defaultStack"
/>
????????????????
<
interceptor-ref?
name
="reference-resolver"
/>
????????????????
<
interceptor-ref?
name
="model-driven"
/>
???????
<
interceptor-ref?
name
="params"
/>
????????????
</
interceptor-stack
>
????????
</
interceptors
>
<
default-interceptor-ref?
name
="myDefaultWebStack"
/>
????????
<
action?
name
="blogUser"
?class
="com.jsblog.action.BlogUserAction"
>
???
<
external-ref?
name
="baseDao"
>
baseDaoTarget
</
external-ref
>
????
??? //這里是把applicationContext里配置的DAO?注入action里?action里要有baseDao屬性
???
<
result?
name
="success"
>
/add.htm
</
result
>
??
</
action
>
-------------------------------------------------------------------------
applicationContext.xml
---------------------------------------------------------------------------
<?
xml?version="1.0"
?>
<!
DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"
?????????? "http://www.springframework.org/dtd/spring-beans.dtd"
>
<
beans?
default-autowire
="no"
?default-dependency-check
="none"
? ? ? ?? default-lazy-init
="false"
>
????
<
bean?
id
="dataSource"
?class
="org.apache.commons.dbcp.BasicDataSource"?
???????? destroy-method="close">
????????<property?name="driverClassName">
????????????<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
????????</property>
????????<property?name="url">
????????????<value>
????????????? jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsblog;SelectMethod=cursor
??????????? </value>
????????</property>
????????<property?name="username">
????????????<value>sa</value>
????????</property>
????????<property?name="password">
????????????<value>jfy</value>
????????</property>
????</bean>
????<bean?id="sessionFactory"
??????????class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
????????<property?name="dataSource">
????????????<ref?local="dataSource"/>
????????</property>
????????<property?name="mappingResources">
????????????<list>
????????????????<value>com/jsblog/BlogUserForm.hbm.xml</value>
????????????</list>
????????</property>
????????<property?name="hibernateProperties">
????????????<props>
????????????????<prop?key="hibernate.dialect">
????????????????????net.sf.hibernate.dialect.SQLServerDialect
????????????????</prop>
????????????????<prop?key="hibernate.show_sql">true</prop>
????????????</props>
????????</property>
????</bean>
????<bean?id="transactionManager"
??????????class="org.springframework.orm.hibernate.HibernateTransactionManager">
????????<property?name="sessionFactory">
????????????<ref?local="sessionFactory"/>
????????</property>
????</bean>
????<bean?id="baseDaoTarget"?class="com.jsblog.dao.BlogUserDao">
????????<property?name="sessionFactory">
????????????<ref?local="sessionFactory"/>
????????</property>
????</bean>
</beans>
---------------------------------------------------------------------------
BlogUserDao.java
---------------------------------------------------------------------------
package
?com.jsblog.dao;
import
?org.springframework.orm.hibernate.support.HibernateDaoSupport;
import
?org.springframework.orm.hibernate.HibernateCallback;
import
?org.springframework.orm.hibernate.SessionFactoryUtils;
import
?com.jsblog.BlogUserForm;
import
?java.io.Serializable;
import
?java.util.List;
import
?net.sf.hibernate.HibernateException;
import
?net.sf.hibernate.Session;
public
?
class
?BlogUserDao?
extends
?HibernateDaoSupport?
implements
?BaseDao?{
????
public
?
void
?insert(BlogUserForm?bloguser)?{
????????getHibernateTemplate().save(bloguser);
????}
}