`
chenyingjie1001
  • 浏览: 18574 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

新人进ITEYE2012/06/03Struts2心得

阅读更多

 

Struts2第一步: 

1.新建一个web项目,在web.xml中加入一个filter

 

<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> 

 2.导入struts2的jar包,可去官网下载 

3.从例子中拷贝一个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>
    <constant name="struts.devMode" value="true" />
    
   <package name="user" namespace="/user" extends="struts-default">
		<action name="userlist" class="com.aowin.action.UserAction" method="getUsers">
			<result>/list.jsp</result>
		</action>
		
		<action name="input" class="com.aowin.action.UserAction" method="addInput">
			<result>/input.jsp</result>
		</action>
		
		<action name="update" class="com.aowin.action.UserAction" method="update">
			<result>/update.jsp</result>
		</action>
		
		<action name="updateSubmit" class="com.aowin.action.UserAction" method="updateSubmit">
			<interceptor-ref name="token"></interceptor-ref>
			<interceptor-ref name="defaultStack"></interceptor-ref>
			<result name="fail">/error.jsp</result>
			<result name="updatefail">/updatefail.jsp</result>
			<result name="updateSuccess">/updateSuccess.jsp</result>
			<result name="invalid.token" type="redirectAction">
				<param name="namespace">/user</param>
				<param name="actionName">userlist</param>
			</result>
		</action>
		
		<action name="addUser" class="com.aowin.action.UserAction" method="addUser">
			<!-- strtus2 默认的拦截器stack 没有加上token这个拦截器 -->
			<interceptor-ref name="token"></interceptor-ref>
			<!-- 一旦配了单独的拦截器 默认的拦截器栈 就失效了 需要手动加上 -->
			<interceptor-ref name="defaultStack"></interceptor-ref>
			<result name="invalid.token" type="redirectAction">
				<param name="namespace">/user</param>
				<param name="actionName">userlist</param>
			</result>
			<result name="fail">/error.jsp</result>
			<result>/list.jsp</result>
		</action>
		
		<action name="deleteUser" class="com.aowin.action.UserAction" method="deleteUser">
			<result type="redirectAction">
				<param name="namespace">/user</param>
				<param name="actionName">userlist</param>
			</result>
		</action>
	</package>
</struts>
 

 简单分为4个包   dao  action   model  service  分别做增删改查的操作 

action的代码:用util模拟了dao层 因为没用到数据库所以service也给放弃了 

只有util模拟数据库  model  和 action 

 

package com.aowin.action;

import java.util.List;
import java.util.Map;

import com.aowin.model.User;
import com.aowin.util.Util;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
	private int idss ;
	private int id;
	private User user;
	private List<User> userList;
	private Map request ;

	public int getIdss() {
		return idss;
	}

	public void setIdss(int idss) {
		this.idss = idss;
	}

	public Map getRequest() {
		return request;
	}

	public void setRequest(Map request) {
		this.request = request;
	}

	public int getId() {
		return id;
	}

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

	public User getUser() {
		return user;
	}

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

	public List<User> getUserList() {
		return userList;
	}

	public void setUserList(List<User> userList) {
		this.userList = userList;
	}

	//1.开始在页面上显示 所有的 数据
	public String getUsers() {
		userList = Util.list;// 模拟去数据库操作
		request = (Map) ActionContext.getContext().get("request");
		request.put("userList", userList);
		return Action.SUCCESS;
	}
	//仅仅是跳转到add界面
	public String addInput() {
		return Action.SUCCESS;
	}
	//点击修改后的进入到这个方法
	public String update() {
		//看看问号传进来的id是否有得到
		request = (Map) ActionContext.getContext().get("request");
		for (User u : Util.list) {
			if (u.getId() == this.id) {
				user = u;
			}
		}
		request.put("user", user);
		return Action.SUCCESS;
	}
	
	//修改后提交的方法updateSubmit()
	
	public String updateSubmit() {
		User us = null ;
		//用一个us接住上传来的user 根据上传来的id得到原来的us  us去setname 和address 
		userList = Util.list;
		int id = user.getId() ;
		String name = user.getName();
		String address = user.getAddress() ;
		if("".equals(name.trim()) || "".equals(address.trim())){
			return "fail" ;
		}
		//看看是否需要setid
//		user.setId(user.getId());
		for (User u : userList) {
			if(u.getName().equals(name.trim()) && u.getAddress().equals(address.trim())){
				return "updatefail" ;
			}
			if (u.getId() == id) {
				us = u;
			}
		}
		us.setId(id);
		us.setName(name);
		us.setAddress(address);
		request = (Map) ActionContext.getContext().get("request");
		request.put("userList", userList);
		return "updateSuccess" ;
	}
	//增加用户
	public String addUser(){
		userList = Util.list;
		String name = user.getName();
		String address = user.getAddress() ;
		for(User u : userList){
			System.out.println(u.getName());
			if(u.getName().equals(name.trim()) || u.getAddress().equals(address.trim())||"".equals(name.trim())||"".equals(address.trim())){
				return "fail" ; 
			}
		}try{
			id = userList.get(userList.size()-1).getId() + 1 ;
		}catch (Exception e) {
			id = 1 ;
		}
		user.setId(id);
		user.setName(name);
		user.setAddress(address);
		userList.add(user);
		request = (Map) ActionContext.getContext().get("request");
		request.put("userList", userList);
		return Action.SUCCESS;
	}
//删除用户
	public String deleteUser(){
		userList = Util.list;
		userList.remove(idss);
		request = (Map) ActionContext.getContext().get("request");
		request.put("userList", userList);
		return Action.SUCCESS;
	}
}


2
2
分享到:
评论
1 楼 chenyingjie1001 2012-06-03  
util中是一个简单的模拟
import java.util.ArrayList;
import java.util.List;

import com.aowin.model.User;

public class Util {
	public static List<User> list = new ArrayList<User>();
	
	static {
		for (int i = 1; i < 7; i++) {
			User user = new User();
			user.setId(i);
			user.setAddress("上海" + i);
			user.setName("张三" + i);
			list.add(user);
		}
	}
}

相关推荐

Global site tag (gtag.js) - Google Analytics