struts和spring包都是直接添加MyEclipse 5.0 自带的,只在struts下测试成功
刚接触spring,对applicationContext.xml的bean的配置还不熟悉,下面的是测试代码:-----------
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 id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TestDb;</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>aa</value>
</property>
</bean>
<bean name="/login" class="cn.com.jac.dmps.user.action.LoginAction"
singleton="false">
<property name="user">
<ref bean="userBo" />
</property>
</bean>
<bean id="userDao" class="cn.com.jac.dmps.user.dao.UserDAO">
<property name="jt">
<ref bean="dataSource" />
</property>
</bean>
<bean id="userBo" class="cn.com.jac.dmps.user.bo.UserBO">
<property name="dao">
<ref bean="userDao" />
</property>
</bean>
</beans>
--------------------------
struts-config.xml
-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<datasources>
</datasources>
<form-beans >
<form-bean name="loginForm" type="cn.com.jac.dmps.user.form.LoginForm" />
</form-beans> <global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/page/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="success" path="/index" />
</action> </action-mappings> <message-resources parameter="cn.com.jac.dmps.res.ApplicationResources_zh_CN" />
</struts-config>
刚接触spring,对applicationContext.xml的bean的配置还不熟悉,下面的是测试代码:-----------
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 id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TestDb;</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>aa</value>
</property>
</bean>
<bean name="/login" class="cn.com.jac.dmps.user.action.LoginAction"
singleton="false">
<property name="user">
<ref bean="userBo" />
</property>
</bean>
<bean id="userDao" class="cn.com.jac.dmps.user.dao.UserDAO">
<property name="jt">
<ref bean="dataSource" />
</property>
</bean>
<bean id="userBo" class="cn.com.jac.dmps.user.bo.UserBO">
<property name="dao">
<ref bean="userDao" />
</property>
</bean>
</beans>
--------------------------
struts-config.xml
-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<datasources>
</datasources>
<form-beans >
<form-bean name="loginForm" type="cn.com.jac.dmps.user.form.LoginForm" />
</form-beans> <global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/page/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="success" path="/index" />
</action> </action-mappings> <message-resources parameter="cn.com.jac.dmps.res.ApplicationResources_zh_CN" />
</struts-config>
解决方案 »
- struts2自定义拦截器实现Interceptor接口问题
- java out of memoryException :java heap space
- 一堆告警后 TOMCAT当掉了,怎么回事?????????????重启没问题!
- resin3.1.3配置连接池,通过hibernate访问数据库失败,而resin3.0.19成功,怎么解决?
- java.net.UnknownHostException
- TOMCAT的日志问题
- struts高手请进
- 一个简单的hibernate问题,请高手解答???
- 为什么用jboss+ejb+sybase开发了一个计算模块总出现死锁现象,高分请教
- javamail 老出现 authentication require,请各位帮忙,急啊!!
- 请有Hibernate_api.chm中文版的
- Struts数据源(请高手指点,我是初学者,谢谢)
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">
<welcome-file-list>
<welcome-file>/page/login.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<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>action</servlet-name>
<servlet-class>
cn.com.jac.dmps.action.JacDmpsActionServlet
</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
LoginAction.java:
---------------------------
package cn.com.jac.dmps.user.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;import cn.com.jac.dmps.user.bo.UserBO;
import cn.com.jac.dmps.user.form.LoginForm;public class LoginAction extends Action { UserBO user;
public void setUser(UserBO user) {
this.user = user;
}
public ActionForward execute(ActionMapping mapping, ctionForm form, HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String username = loginForm.getUsername();
String password = loginForm.getPassword();
ActionErrors errors = new ActionErrors();
user.setUsername(username);
user.queryByUsername(username);
System.out.println(user.getPassword());
return new ActionForward(mapping.getInput());
}
}------------------------
UserBO.java
-------------------------package cn.com.jac.dmps.user.bo;import cn.com.jac.dmps.user.dao.UserDAO;public class UserBO implements IUserBO {
private int id;
private String username;
private String password;
private UserDAO dao;
public void setDao(UserDAO dao) {
this.dao = dao;
} public int getId() {
return id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public UserBO queryByUsername(String username) {
return dao.queryByUsername(username);
}
}
userDao还需要其他属性吗?
我的思路是通过loginForm输入的username传给UserBO,然后调用UserDAO中的queryByUsername(String username) 返回的UserBO对象
user和dao对象都由spring自动创建
按这样的顺序LoginAction<->UserBO<->UserDAO
中缺少配置
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml,
/WEB-INF/action-servlet.xml"/>
</plug-in>
中缺少配置
<controller>
<set-property property="processerClass"
value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>