SSM框架边学边练

3 篇文章 0 订阅
3 篇文章 0 订阅

开发工具:myEclipse8.5

jdk:1.5.06

数据库:MySQL

使用框架:Struts2.3.15、Spring3.1、mybatis*

服务器:tomcat

1.新建web工程

2.导入jar包(根据众大牛的教程,我导入了以下jar包)


3.编写代码


(1)实体类User

public class User {
	private String id;
	private String loginName;
	private String displayName;
	private String password;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getDisplayName() {
		return displayName;
	}

	public void setDisplayName(String displayName) {
		this.displayName = displayName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

(2)dao UserDao

public interface UserDao {
	/* 登陆 */
	public User login(User user);

	/* 注册 */
	public User register(User user);

	/* 查询 */
	public User getUserInfo(User user);
}

(3)bo接口UserBo

public interface UserBo {
	/* 登陆 */
	public User login(User user);

	/* 注册 */
	public User register(User user);
}

(4)bo实现类UserBoImpl

public class UserBoImpl implements UserBo {
	/* 注入 */
	private UserDao UserDao;

	/* 登陆 */
	public User User(User user) {
		return UserDao.login(user);
	}

	/* 注册 */
	public User register(User user) {
		return UserDao.register(user);
	}

	public UserDao getUserDao() {
		return UserDao;
	}

	public void setUserDao(UserDao UserDao) {
		this.UserDao = UserDao;
	}

	public User login(User user) {
		// TODO Auto-generated method stub
		return null;
	}
}

(5)action UserAction

public class UserAction {
	private User user;
	/* 注入 */
	private UserBo UserBo;

	/* 登陆 */
	public String User() {
		user = UserBo.login(user);
		if (!user.getId().equals("0")) {
			return "success";
		} else {
			return "input";
		}
	}

	/* 注册 */
	public String register() {
		user = UserBo.register(user);
		if (!user.getId().equals("0")) {// 注册成功
			return "success";
		} else {// 注册失败
			return "registerInput";
		}
	}

	public String login() {
		System.out.println("hehe");
		return "success";
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public void setUserBo(UserBo UserBo) {
		this.UserBo = UserBo;
	}

	public UserBo getUserBo() {
		return UserBo;
	}
}

4.配置数据源:


jdbc.url=jdbc\:mysql\://localhost\:3306\:dms
jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=root
5.配置Spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

	<!--配置数据源属性文件引入sqlServer.properties  -->
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>WEB-INF/sqlServer.properties</value>
		</property>
	</bean>

	<!--配置数据源  -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>${jdbc.driver}</value>
		</property>
		<property name="url">
			<value>${jdbc.url}</value>
		</property>
		<property name="username">
			<value>${jdbc.username}</value>
		</property>
		<property name="password">
			<value>${jdbc.password}</value>
		</property>
	</bean>

	<!--创建sqlSessionFactory-->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="WEB-INF/mybatis_config.xml" />
		<property name="dataSource" ref="dataSource" />
	</bean>

	<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean"
		scope="prototype">
		<property name="mapperInterface" value="baomi.user.dao.UserDao" />
		<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
	</bean>

	<bean id="userBo" class="baomi.user.bo.impl.UserBoImpl" scope="prototype">
		<property name="userDao" ref="userDao"></property>
	</bean>

	<bean id="userAction" class="baomi.user.action.UserAction" scope="prototype">
		<property name="userBo" ref="userBo"></property>
	</bean>
</beans>

6.配置Struts

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
    <package name="default" namespace="/" extends="struts-default">
        <action name="register" class="userAction">
        	  <result name="success">/jsp/Login.jsp</result>
        </action>
        <action name="userAction_*" class="userAction" method="{1}" ><!--这里用的是通配符,在页面使用的时候直接使用userAction_login;不使用通配符时使用userAction!login.action-->
        	<result name="success">/index.jsp</result>
        </action>
    </package>
</struts>


7.配置mybatis


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
	<typeAliases>
		<typeAlias alias="user" type="yikui.pan.user.entity.User" />
	</typeAliases>

	<mappers>
		<mapper resource="UserMapper.xml" />
	</mappers>
</configuration>

mybatis还需要mapper文件,也就是具体的那个sql文件(至少我是这么理解的)



8.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<!-- struts2的配置文件 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
		</filter-class>
	</filter>
<!-- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter -->
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- spring的配置路径 ,必须-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/applicationContext.xml
		</param-value>
	</context-param>

	<!-- spring的配置路径 ,必须 -->
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
</web-app>
9.jsp页面

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
	<head>
		<title>
			Register.jsp
		</title>
	</head>
	<body>
		<h1>Register</h1>
		<hr>
		<s:form action="userAction_login"><!--这里注意-->
			<s:textfield name="username" key="username"/>
			<s:textfield name="password" key="password"/>
			<s:submit/>
		</s:form>
	</body>
</html>

10.结果



11.总代码结构



        大功告成。

       在搭建的过程中遇到的错误:

1.There is no Action mapped for namespace / and action name

解决办法

      一、struts.xml文件错误。这种错误又分为以下几种:1,struts.xml文件名错误。一定要注意拼写问题;2,struts.xml文件放置路径错误。一定要将此文件放置在src目录下。编译成功后,要确认是否编译到classes目录中;3,struts.xml文件内容错误。下面给出一个正确的struts.xml文件以供参考。注意背景色部分。

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>


<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="login" class="com.wanggc.struts2.sample.Struts2Action">
<result name="success">/jsp/result.jsp</result>
</action>
</package>
</struts>
复制代码

 

      二、如果排除了struts.xml文件的问题,还有一种可能就是,在web.xml文件中的<welcome-file>信息中是否配置了自己工程的启动页面。如果没有配置,地址栏中要输入完成的url,如:http://localhost:8080/Struts2Sample/jsp/login.jsp,后面的资源详细信息不输入的时候也会报这个错误,我就是栽在这个问题上的(^_^)。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值