【SSH学习笔记】整合spring3-struts2的小项目(三)

9 篇文章 0 订阅
5 篇文章 0 订阅
5、创建IUserService接口及其实现类
import java.util.List;
public interface IUserService {

	List<User> findAll();

	boolean isUser(String username, String password);

	boolean add(User user);

	boolean del(int userid);

	boolean update(User user);
	
	User getUserById(int userid);

}
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;

@Service("userService")
public class UserService implements IUserService {

	private IUserDao userDao;
	
	@Resource(name="userDao")
	public void setUserDao(IUserDao userDao) {
		this.userDao = userDao;
	}
	
	public List<User> findAll() {
		List<User> list=this.userDao.findAll();
		if(list!=null) return list;
		return null;
	}

	public boolean isUser(String username, String password) {
		User user = userDao.isUser(username);
		if(user!=null){
			if(user.getPassword().equals(password)){
				return true;
			}
		}
		return false;
	}

	public boolean add(User user) {
		if(userDao.add(user)>0){
			return true;
		}
		return false;
	}

	public boolean del(int userid) {
		if(userDao.del(userid)>0){
			return true;
		}
		return false;
	}

	public boolean update(User user) {
		if(userDao.update(user)>0){
			return true;
		}
		return false;
	}

	public User getUserById(int userid) {
		User user = this.userDao.getUserById(userid);
		if(user!=null) return user;
		return null;
	}

}

 

 

6、创建LoginAction及其需要的方法

import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport;

@Controller("loginAction")
public class LoginAction extends ActionSupport {

	private static final long serialVersionUID = -7591979515601833682L;
	private int id;
	private String password;
	private User user;
	private int userid;
	private String username;
	private List<User> users;
	private IUserService userService;

	/*======== 登录 ========*/
	public String login() throws Exception {
		this.clearErrorsAndMessages();
		if (userService.isUser(username, password)) {
			this.users = userService.findAll();
			return "success";
		} else {
			this.addActionMessage("ERROR!!!!!!!!!!");
			return "error";
		}
	}
	
	/*======== 添加 ========*/
	public String add() throws Exception {
		this.clearErrorsAndMessages();
		if (user != null) {
			user.setFlag(0);
		}
		if (userService.add(user)) {
			this.addActionMessage("添加成功!");
			this.users = userService.findAll();
			return SUCCESS;
		} else {
			this.addActionMessage("添加失败!");
			return ERROR;
		}
	}

	/*======== 删除 ========*/
	public String del() throws Exception {
		this.clearErrorsAndMessages();
		if (userService.del(userid)) {
			this.addActionMessage("删除成功!");
			this.users = userService.findAll();
			return SUCCESS;
		} else {
			this.addActionMessage("删除失败!");
			return ERROR;
		}
	}
	
	/*======== 选择要更新的用户信息 ========*/
	public String choose() throws Exception {
		this.clearErrorsAndMessages();
		System.out.println(this.id);
		this.user = userService.getUserById(this.id);
		if (this.user != null) {
			return SUCCESS;
		}
		return ERROR;
	}

	/*======== 更新 ========*/
	public String update() throws Exception {
		this.clearErrorsAndMessages();
		this.user.setUserid(id);
		if (userService.update(user)) {
			this.addActionMessage("更新成功!");
			this.id = 0;
			this.users = userService.findAll();
			return SUCCESS;
		} else {
			this.addActionMessage("更新失败!");
			return ERROR;
		}
	}
	
	/*======== GET & SET ========*/
	public int getId() {
		return id;
	}

	public String getPassword() {
		return password;
	}

	public User getUser() {
		return user;
	}

	public int getUserid() {
		return userid;
	}

	public String getUsername() {
		return username;
	}

	public List<User> getUsers() {
		return users;
	}

	public IUserService getUserService() {
		return userService;
	}

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

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

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

	public void setUserid(int userid) {
		this.userid = userid;
	}

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

	public void setUsers(List<User> users) {
		this.users = users;
	}

	/*======== 声明注入 ========*/
	@Resource(name = "userService")
	public void setUserService(IUserService userService) {
		this.userService = userService;
	}

}


 


7、导入struts2的JAR包,创建struts.xml配置文件并配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<constant name="struts.objectFactory" value="spring" />
	<include file="struts-default.xml"></include>
	<package name="login" namespace="/" extends="struts-default">
		<!-- 登录 -->
		<action name="login" class="loginAction" method="login">
			<result name="success">/success.jsp</result>
			<result name="error">/login.jsp</result>
		</action>
		<!-- 添加 -->
		<action name="add" class="loginAction" method="add">
			<result name="success">/success.jsp</result>
			<result name="error">/add.jsp</result>
		</action>
		<!-- 删除 -->
		<action name="del" class="loginAction" method="del">
			<result name="success">/success.jsp</result>
			<result name="error">/success.jsp</result>
		</action>
		<!-- 更新 -->
		<action name="update" class="loginAction" method="update">
			<result name="success">/success.jsp</result>
			<result name="error">/success.jsp</result>
		</action>
		<!-- 选择 -->
		<action name="choose" class="loginAction" method="choose">
			<result name="success">/success.jsp</result>
			<result name="error">/success.jsp</result>
		</action>
	</package>
</struts>


 

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">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<context-param>
		<!-- 当前的上下文中寻找 -->
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
	</context-param>
	<!-- 配置spring监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<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>
</web-app>


 

9、创建页面

  1、login.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<form action="login.action" method="post">
    用户:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    <input type="submit" value="提交"/><input type="reset" value="重置"/>
    <s:actionmessage/>
</form>


  2、success.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function(){
    if(${id==0}){
	  $("#div02").hide();
	}
	$("#div01").hide();
	$("input[name='btnAdd']").bind("click", function(){
		$("#div01").slideDown("normal");
	});
	$("s:submit[name='addbtn']").bind("click", function(){
		$("#div01").slideUp("normal");
	});
	$("a[name='updatebtn']").bind("click",function(){
		$("#div02").slideDown("nomal");
	});
	$("s:submit[name='btnUpdate']").bind("click", function(){
		$("#div01").slideUp("normal");
	});
})
</script>
<body> 
    <form id="form0" action="del" method="post">
    	<table border="1">
    		<tr>
    			<td>编号</td>
    			<td>姓名</td>
    			<td>生日</td>
    			<td>操作</td>
    		</tr>
    		<s:iterator value="users" var="u">
    		<tr>
    			<td>${u.userid}</td>
    			<td><a name="updatebtn" href="javascript:if(confirm('确认修改?')) location='choose?id=${u.userid }'">${u.username}</a></td>
    			<td>${u.birthday}</td>
    			<td><a href="javascript:if(confirm('确认删除?')) location='del?userid=${u.userid }'">删除</a></td>
			</tr>
			</s:iterator>
		</table>
		<s:actionmessage/>
   	</form>
   	<input type="button" name="btnAdd" value="添加用户"/>
   	<sx:head/>
   	<s:div id="div01">
    	<s:form id="form1" action="add" method="post">
	    	添加用户
			<s:textfield name="user.userid" label="用户编号"></s:textfield>
			<s:textfield name="user.username" label="用户姓名"></s:textfield>
			<s:textfield name="user.password" label="用户密码"></s:textfield>
			<sx:datetimepicker name="user.birthday" label="出生日期" value="today" displayFormat="yyyy-MM-dd"/>
			<s:submit name="addbtn" value="添加用户"></s:submit>
		</s:form>
	</s:div>
	<div id="div02">
		<s:form id="form2" action="" method="post">
			更新用户
			<s:property value="user.userid"/>
			<s:textfield name="user.username" label="用户姓名"></s:textfield>
			<s:textfield name="user.password" label="用户密码"></s:textfield>
			<sx:datetimepicker name="user.birthday" label="出生日期" value="today" displayFormat="yyyy-MM-dd"/>
			<s:submit name="btnUpdate" action="update" value="更新用户"></s:submit>
		</s:form>
	</div>
</body>


 

*10、创建测试类
【经验】随写随测,写一个方法就进行一次测试,这样不止能减少出错,而且不会在运行时因为报N多错误而崩溃

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值