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

struts2+hibernate3+spring2读书笔记5(类型转换)

阅读更多
                              第6章 类型转换
     本章导读:
              类型转换使用广泛,主要用在开发人员将一个字符串转换成更复杂些的对象类型时。因为web中的类型非常单一(在HTTP中所有的信息是String类型),而java是强类型的语言,因些mvc框架一般都会提供字符类型到其他对象类型的转换,Struts2提供了基于ognl表达式的功能强大的转换机制,而且还提供了良好的扩展性,允许开发人员创建自定义的类型转换器。

一.不使用struts2的类型转换器进行类型转换
     1.建立工程
     2.编写pojo类:User.java 内容如下:
        
  package amigo.struts.typeconversion;

import java.util.Date;


/**
 * 用户的POJO类
 * */
public class User {

	/**用户名*/
	private String username;
	
	/**密码*/
	private String password;
	
	/**性别*/
	private int gender;
	
	/**年龄*/
	private int age;
	
	/**出生日期*/
	private Date birthDate;
	
	/**联系电话*/
	private String tel;
	
	/**Email*/
	private String email;

	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 int getGender() {
		return gender;
	}

	public void setGender(int gender) {
		this.gender = gender;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Date getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	
}

   
3.编写Action类:simpleConvertionAction.java

package amigo.struts.typeconversion;

import java.text.SimpleDateFormat;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class SimpleConvertionAction extends ActionSupport implements ServletRequestAware {
         private User user;
         private HttpServletRequest request;
		public User getUser() {
			return user;
		}
		public void setUser(User user) {
			this.user = user;
		}
		public HttpServletRequest getRequest() {
			return request;
		}
		public void setServletRequest(HttpServletRequest request) {
			this.request = request;
		}
		
		/**
		 * 完成用户注册.
		 * 在组装User对象时需要进行gender、age和birthDate属性的强制转换
		 * */
		public String execute(){
			try{
				String username=request.getParameter("username");
				String password=request.getParameter("password");
				String gender=request.getParameter("gender");
				String age=request.getParameter("age");
				String birthDate=request.getParameter("birthDate")==null?"":request.getParameter("birthDate");
				String tel=request.getParameter("tel");
				String email=request.getParameter("email");
			
				user = new User();
				
				user.setUsername(username);
				user.setPassword(password);
				user.setTel(tel);
				user.setEmail(email);
				
				
				//gender、age和birthDate进行强制类型转换
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				user.setGender(Integer.parseInt(gender));
				user.setAge(Integer.parseInt(age));
				user.setBirthDate(sdf.parse(birthDate));
				
				
				return this.SUCCESS;
			}catch(Exception ex){
				request.setAttribute("errorMessage","操作失败:"+ex.getMessage()) ;
				ex.printStackTrace();
				return this.ERROR;
			}
			
		}
		
}

4.编写注册页面:simpleReg.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册</title>
</head>
<body>
	<s:form action="simpleConversion">
		<s:textfield name="username" label="用户名"></s:textfield>
		<s:password name="password" label="密码"></s:password>
		<s:select label="性别" name="gender" list="#{'1':'男','0':'女'}" listKey="key" listValue="value" value="0">
		</s:select>
		<s:textfield name="age" label="年龄"></s:textfield>
		<s:textfield name="birthDate" label="出生日期"></s:textfield>
		<s:textfield name="tel" label="联系电话"></s:textfield>
		<s:textfield name="email" label="Email"></s:textfield>
		<s:submit></s:submit>
		
	
	</s:form>
</body>
</html>

5.注册成功页面:simpleRegSuccess.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册成功</title>
</head>
<body> 
	注册成功!注册信息如下: 
	用户名:<s:property value="user.username"/><br/>
	密码:  <s:property value="user.password"/><br/>
	性别:  <s:property value="user.gender"/><br/>
	年龄:  <s:property value="user.age"/><br/>
	出生日期:<s:property value="user.birthDate"/><br/>
	联系电话:<s:property value="user.tel"/><br/>
	Email:  <s:property value="user.email"/><br/>
</body>
</html>


6.注册失败页面:error.jsp

 
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>操作失败界面</title>
</head>
<body>
<s:property value="#request.errorMessage"/>
</body>
</html>

7.Struts2配置文件:struts.xml

 <!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
   
	<include file="struts-default.xml"/>
	<package name="amigo" extends="struts-default">
	
		<action name="simpleConversion" class="amigo.struts.typeconversion.SimpleConvertionAction">
		<result name="success">/typeConversion/simpleRegSuccess.jsp</result>
		<result name="error">/typeConversion/error.jsp</result>
		</action>
		
	</package>
</struts>

呵呵,以上7步就完成了不使用struts的类型转换,下面我们来看看继承DefaultConverter类型转换。



二.继承DefaultConverter类进行型转换

1. 编写用户信息转换的类型转换器:UserConveerter.java,该类型转换器用于将用户信息进行解析,解析后将其放置到user对象中,代码如下:

         
 package amigo.struts.typeconversion;

import java.util.Map;

import ognl.DefaultTypeConverter;

/**
 * User对象转换器
 * */

public class UserConverter extends DefaultTypeConverter {
	public Object convertValue(Map context,Object value,Class toType){
		if(toType==User.class){
			String[]params=(String[])value;
			User user=new User();
			String[]userInfo=params[0].split(",");
			user.setUsername(userInfo[0]);
			user.setPassword(userInfo[1]);
			return user;
		}
			return null;
	}

}
2. 编写Action类:DefaultConvertionAction.java,该类包含一个user属性,user对象的转换由转换器类UserConverter.java类完成,DefaultConvertionAction.java的代码如下:

  
 package amigo.struts.typeconversion;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class DefaultConvertionAction extends ActionSupport implements ServletRequestAware{
            
	         private User user;
	         private HttpServletRequest request;
			public User getUser() {
				return user;
			}
			public void setUser(User user) {
				this.user = user;
			}
			public HttpServletRequest getRequest() {
				return request;
			}
			public void setServletRequest(HttpServletRequest request) {
				this.request = request;
			}
			
				/**
				 * 完成用户注册
				 * 使用UserConverter转换器
				 * */
			public String execute(){
				try{
					System.out.print(this.getUser().getUsername());
					System.out.print(this.getUser().getPassword());
					return SUCCESS;
					
				}catch(Exception ex){
					request.setAttribute("errorMessage", "操作失败:"+ex.getMessage());
					ex.printStackTrace();
					return ERROR;
					
				}
				
				
			}
}

3. 编写jsp页面:defaultConversionReg.jsp,该页面提供给用户输入注册信息:用户名和密码,两者之间以英文逗号隔开,该页面将请求提供给DefaultConvertionAction.该页面的代码如下:

        
   <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DefaultTypeConverter扩展实例</title>
</head>
<body>
	<s:form action="defaultConvertion">
	   说明:用户名、密码信息以英文逗号隔开<br/>
	   <s:textfield name="user" label="用户信息"></s:textfield>
	   <s:submit></s:submit>
	
	</s:form>
</body>
</html>

4. 类型转换文件:DefaultConvertionAction-conversion.properties,内容为:

     
  user=amigo.struts.typeconversion.UserConverter

   该文件是局部的类型转换器放在需要进行转换的Acion类的同一个包中。

5. 修改struts.xml文件 ,具体内容如下:
        
           
 <action name="defaultConvertion" class="amigo.struts.typeconversion.DefaultConvertionAction">
		<result >/typeConversion/simpleRegSuccess.jsp</result>
		<result name="error">/typeConversion/error.jsp</result>
		</action>

经过以上五步后,完成了继承DefaultConverter类进行型转换




三.继承StrutsTypeConverter类进行类型转换

1. 编写类型转换器:UserStrutsConverter.java

            
 package amigo.struts.typeconversion;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

/**
 * User对象转换器(扩展struts TypeConverter类)
 * */

public class UserStrutsConverter extends StrutsTypeConverter {

	
	/**
	 * 从string类型转换为User对象
	 * */
	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		// TODO Auto-generated method stub
	
			String[]params=(String[])values;
			User user=new User();
			String[]userInfo=params[0].split(",");
			user.setUsername(userInfo[0]);
			user.setPassword(userInfo[1]);
			return user;
		
	
	}

	@Override
	public String convertToString(Map context, Object o) {
		// TODO Auto-generated method stub
		return null;
	}

}
   
2.修改类型转换器配置文件,将User对象的类型转换器修改为

       
  user=amigo.struts.typeconversion.UserStrutsConverter 


以上两步实现了继承StrutsTypeConverter类进行类型转换


四.数组的类型转换
        在前面的内容中,讲解了当请求参数为单个值时如何进行类型转换,本实例讲解当属性的类型为数组时如何进行转换。

1. 编写数组属性类型转换器:UserArrayStrutsConverter.java

    
 package amigo.struts.typeconversion;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

	/**
	 * User对象转换器(扩展struts TypeConverter类)
	 * */
public class UserArrayStrutsConverter extends StrutsTypeConverter {
	/**
	 * 从string类型转换为User数组对象
	 * */
	@Override
	public Object convertFromString(Map context, String[] values, Class toclass) {
		User[] userArray=new User[values.length];
		for(int i=0;i<values.length;i++){
			User user=new User();
			String[]userInfo=values[i].split(",");
			System.out.print(userInfo[1]);
			user.setUsername(userInfo[0]);
			System.out.print(user.getUsername());
			user.setPassword(userInfo[1]);
			System.out.print(user.getPassword());
			userArray[i]=user;
		}
		
		if(values.length==1){
		return userArray[0];
		}else{
		return userArray;	
			
		}
	}

	@Override
	public String convertToString(Map context, Object o) {
		// TODO Auto-generated method stub
		return null;
	}

}


2.编写Action类:UserArrayConvertionAction.java

  
package amigo.struts.typeconversion;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class UserArrayConvertionAction extends ActionSupport implements ServletRequestAware {
	       
			private User[] user;
			private HttpServletRequest request;
			public User[] getUser() {
				
				return user;
			}
			public void setUser(User[] user) {
				this.user = user;
			}
			public HttpServletRequest getRequest() {
				return request;
			}
			public void setServletRequest(HttpServletRequest request) {
				this.request = request;
			}
			
			
			public String execute(){
				try{
					return this.SUCCESS;
				}catch(Exception ex){
					request.setAttribute("errorMessage","操作失败:"+ex.getMessage());
					ex.printStackTrace();
					return this.ERROR;
					
					
				}
				
			}
}
3.编写填写注册信息页面:userArrayReg.jsp

        
  <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册页面:</title>
</head>
<body>
  <s:form action="userArrayConvertion">
  	说明:用户名、密码信息以英文逗号隔开<br/>
     <s:textfield name="user" label="用户信息1"></s:textfield>
     <s:textfield name="user" label="用户信息2"></s:textfield>
     <s:submit></s:submit>
  </s:form>  
</body>
</html>
4.编写注册成功页面:userArrayRegSuccess.jsp

   
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册成功</title>
</head>
<body>
	数组类型转换成功!
	<s:iterator value="user" status="st">
		<br/>用户<s:property value="#st.index"/>的信息:<br/>
		用户名:<s:property value="user[#st.index].username"/><br/>
		密码:<s:property value="user[#st.index].password"/>
		
	</s:iterator>
</body>
</html>
  

5.配置类型转换器:

   在xwork-conversion.properties中修改转换器为:

  
Amigo.struts.typeconversion.User=amogo.struts.typeconversion.UserArrayStrutsConverter
6.配置struts.xml

  
  <!--数组属性转换实例  -->
		<action name="userArrayConvertion" class="amigo.struts.typeconversion.UserArrayConvertionAction">
		<result >/typeConversion/userArrayRegSuccess.jsp</result>
		<result name="error">/typeConversion/error.jsp</result>
		</action>

经过以上六步后,数组的类型转换完成。


五.集合的类型转换
    常用的集合包括List和Map,本实例讲解当Action中user为List集合时,如何实现类型转换(和数组类似)
 

1. 编写list集合类型转换器:UserListStrutsConverter.java,代码如下:

  
  package amigo.struts.typeconversion;

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

import org.apache.struts2.util.StrutsTypeConverter;

public class UserListStrutsConverter extends StrutsTypeConverter {

	@Override
	public Object convertFromString(Map context, String[] values, Class toClass) {
		// TODO Auto-generated method stub
	
	
			List<User> userlist = new ArrayList<User>();
			for(int i=0;i<values.length;i++){
			     User user = new User();
			     String[] userInfo = values[i].split(",");
				 user.setUsername(userInfo[0]);
				 user.setPassword(userInfo[1]);
				 userlist.add(user);
			}
			
			if(values.length==1){
				return userlist.get(0);
			}else{
				return userlist;
			}
	

		
	}
	/**
	 * 从User字符串转换为字符串,因为本实例没有用到,实现暂略.
	 */
	@Override
	public String convertToString(Map context, Object o) {
		// TODO Auto-generated method stub
		return null;
	}

}


2. 编写Action类:UserListConvertionAction.java 具体代码如下:

   
 package amigo.struts.typeconversion;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class UserListConvertionAction extends ActionSupport implements ServletRequestAware {
	       
			private List<User> user;
			private HttpServletRequest request;
			public List<User> getUser() {
				
				return user;
			}
			public void setUser(List<User> user) {
				this.user = user;
			}
			public HttpServletRequest getRequest() {
				return request;
			}
			public void setServletRequest(HttpServletRequest request) {
				this.request = request;
			}
			
			
			public String execute(){
				try{
					return this.SUCCESS;
				}catch(Exception ex){
					request.setAttribute("errorMessage","操作失败:"+ex.getMessage());
					ex.printStackTrace();
					return this.ERROR;
					
					
				}
				
			}
}
3. 编写填写注册信息页面:userListReg.jsp

   
  <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户注册页面:</title>
</head>
<body>
  <s:form action="userListConvertion">
  	说明:用户名、密码信息以英文逗号隔开<br/>
     <s:textfield name="user" label="用户信息1"></s:textfield>
     <s:textfield name="user" label="用户信息2"></s:textfield>
     <s:submit></s:submit>
  </s:form>  
</body>
</html>

4.第四步:编写注册成功页面:userListRegSuccess.jsp  代码如下:

   <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册成功</title>
</head>
<body>
	<table width="50%">
		<tr style="backgroup-color:powderblue;font-weight:bold;">
			<td>序号</td>
			<td>用户名</td>
			<td>密码</td>
		</tr>
		<s:iterator value="user" status="st">
			<tr>
				<td><s:property value="#st.index"/></td>
				<td><s:property value="user[#st.index].username"/></td>
				<td><s:property value="user[#st.index].password"/></td>
			</tr>
		
		</s:iterator>
	</table>
</body>
</html>

5.配置类型转换器(局部的类型转换器),在包目录下建立类型转换文件UserListConvertionAction-conversion.properties,具体内容如下:

User=amigo.struts.typeconversion.UserListStrutsConverter


6.配置struts.xml

<!-- List集合转换实例 -->
		<action name="userListConvertion" class="amigo.struts.typeconversion.UserListConvertionAction">
		<result >/typeConversion/userListRegSuccess.jsp</result>
		<result name="error">/typeConversion/error.jsp</result>
		</action>

    以上六步完成了集合的类型转换。

六.类型转换的错误处理

1. 编写Action类:ExceptionConverter.java

      
package amigo.struts.typeconversion;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 演示Struts中类型转换的错误处理
 * */
public class ExceptionConverter extends ActionSupport {
	/**
	 * 用户名.
	 * */	
	private String username;
	
	/**
	 * 年龄
	 * */
	private int age;
	
	/**
	 * 出生日期
	 * */
	private Date birthDate;
	
	
	public String getUsername() {
		return username;
	}



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



	public int getAge() {
		return age;
	}



	public void setAge(int age) {
		this.age = age;
	}



	public Date getBirthDate() {
		return birthDate;
	}



	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}
	
	public String execute(){
		return null;
		
	}
	
	
}

2.编写jsp页面:exceptinConversionReg.jsp

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

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>演示Struts中类型转换的错误处理</title>
</head>
<body>
		<s:form action="exceptionConvertion">
			<s:textfield name="username" label="用户名"></s:textfield>
			<s:textfield name="age" label="年龄"></s:textfield>
			<s:textfield name="birthDate" label="出生日期"></s:textfield>
			<s:submit></s:submit>
		</s:form>
</body>
</html>

3.修改Struts2配置文件:struts.xml

  
<!-- 演示类型转换的错误处理实例 -->
		<action name="exceptionConvertion" class="amigo.struts.typeconversion.ExceptionConverter">
			<result name="input">/typeConversion/exceptionConversionReg.jsp</result>
		</action>

4.建立局部资源文件:ExceptionConvertionAction.properties(在ExceptionConvertionAction所在的包里新建)

   
 invalid.fieldvalue.age=\u5e74\u9f84\u8f93\u5165\u4e0d\u5408\u6cd5\uff0c\u7c7b\u578b\u8f6c\u6362\u5931\u8d25(内容为:年龄输入不合法,类型转换失败)
invalid.fieldvalue.birthDate=\u51fa\u751f\u65e5\u671f\u5e94\u4e3ayyyy-MM-dd\u683c\u5f0f
(内容为:出生日期应为yyyy-MM-dd格式)


最后经过以上4步就完成了类型转换的错误处理了。
分享到:
评论

相关推荐

    使用Struts + Spring + Hibernate完成用户登陆笔记

    "使用Struts + Spring + Hibernate完成用户登陆笔记" 在本文中,我们将结合Struts、Spring和Hibernate三种技术来完成用户登陆系统的实现。下面是相关的知识点总结: 一、Struts框架简介 * Struts是一个基于MVC...

    Struts2 + Spring + Hibernate + DWR 项目布署笔记

    "Struts2 + Spring + Hibernate + DWR"是一个常见的Java Web开发框架组合,用于构建动态、数据驱动的Web应用程序。这个项目部署笔记将深入探讨这四个组件的核心功能以及它们如何协同工作。 首先,Struts2是一个基于...

    spring+hibernate+struts2 +mybatis整合笔记

    ### Spring+Hibernate+Struts2+MyBatis 整合笔记 #### 一、SSM框架简介及整合意义 SSM框架是指Spring、SpringMVC和MyBatis三个开源框架的整合,通常用于快速开发Java Web应用。本篇笔记主要介绍如何将Spring、...

    SSH项目(spring+hibernate+struts2)

    SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...

    struts2+hibernate+spring三大框架知识点笔记

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自解决了Web开发中的不同问题,结合使用可以构建出高效、可维护的大型企业级应用。以下是对这三大框架及其结合使用的知识点详解。 **Struts2框架** ...

    Struts2笔记+Hibernate3.6笔记+Spring3笔记

    SSH是Java开发中广泛使用的三大框架——Struts2、Hibernate和Spring的缩写。这三大框架结合使用,能够构建高效、灵活的企业级Web应用程序。现在,让我们深入探讨这些框架的知识点。 **Struts2笔记** Struts2是MVC...

    struts2+spring+hibernate 做的图书管理系统

    内涵数据库设计模型 和数据库设计代码! 图书管理系统: 数据库使用的mysql 里面的发送e-mail我用的是一个我申请的邮箱在测试 可以用自己的! 代码功能基本都有注释.... 才学完s2sh的入门笔记吧! 供学习使用........

    spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 案例.rar

    spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合

    轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发笔记

    轻量级 J2EE 企业应用实战 -- Struts+Spring+Hibernate 整合开发笔记 本资源为轻量级 J2EE 企业应用实战开发笔记,涵盖 Struts、Spring 和 Hibernate 三大框架的整合开发实践。笔记从 JDK 安装和配置环境变量开始,...

    jsp+tomcat+Struts2+Spring+Hibernate应用实例.rar

    标题中的"jsp+tomcat+Struts2+Spring+Hibernate应用实例"揭示了一个基于Java Web技术的项目构建,其中涉及到的主要技术栈包括JSP、Tomcat服务器、Struts2、Spring和Hibernate。这个实例可能是一个典型的MVC(Model-...

    struts+hibernate+spring读书笔记

    Struts、Hibernate和Spring是Java开发中非常重要的三个开源框架,它们各自负责应用程序的不同层面,共同构建了企业级应用的“铁三角”。这篇读书笔记将深入探讨这三个框架的核心概念、功能以及它们之间的协同工作...

    struts2+hibernate+spring的几篇入门用网文

    .mht":此篇笔记可能专注于Struts2中的类型转换机制,解释了如何处理不同数据类型的转换问题,以及自定义类型转换器的实现。 通过学习这些入门文章,开发者可以逐步掌握Struts2、Hibernate和Spring的基础知识,了解...

    Struts+Spring+Hibernate

    Struts+Spring+Hibernate整合笔记

    Struts 2 + Spring 2.0 + Hibernate 3.0

    Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记

    SSH(Struts1.0+Spring+Hibernate)框架集成笔记

    ### SSH(Struts1.0+Spring+Hibernate)框架集成笔记 #### 一、概述 SSH框架集成,即Struts1.0 + Spring + Hibernate框架的整合应用,是Java Web开发中较为复杂的集成模式之一。它集合了MVC设计模式(通过Struts...

    药店管理系统 struts+spring+hibernate

    1 开发环境 d6 up2,sqlserver2000, win2000 server 1024*768(笔记本电脑) c/s 2 第三方控件,ehlib2.1,fastreport2.45,xpmenu,snccurrency ,(有可能用到express bar 但是可以在umain删除引用单元,因为没用到)...

    读书笔记:基于struts+hibernate+spring+easyui+mysql的网上商城项目实战源码.zip

    读书笔记:基于struts+hibernate+spring+easyui+mysql的网上商城项目实战源码

    Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记

    Struts 2、Spring 2.0 和 Hibernate 3.0 是Java开发中经典的MVC框架组合,它们各自负责不同的职责,共同构建了一个强大的企业级应用架构。在本笔记中,我们将深入探讨这三个框架的整合过程及其核心概念。 **Struts ...

    struts+spring+hibernate学习笔记

    这个“struts+spring+hibernate学习笔记”应该涵盖了这三个框架的基础知识以及如何将它们整合使用的详细教程。 Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于控制Web应用的流程。它...

    SSH整合学习笔记之struts2+spring+hibernate+c3p0源码

    SSH整合是Java Web开发中的一个经典组合,由Struts2、Spring和Hibernate三大框架组成,再加上C3P0作为数据库连接池,形成了高效且灵活的应用架构。本学习笔记将深入探讨这四个组件如何协同工作,构建出强大的企业级...

Global site tag (gtag.js) - Google Analytics