- 浏览: 72566 次
- 性别:
- 来自: 惠州
文章分类
最新评论
-
woyaonuli:
各位大侠,请教下,怎么让生成的pdf每页都有背景图片, ...
iText 跨行and背景图片 -
lixia0417:
恩,LZ,谢谢了,那我还是练习把SSh的例子改成S2sh的吧, ...
struts2+hibernate3+spring2读书笔记4(数据校验器) -
hhr_michael:
哥们,你好,这本书着重s2sh的各个部分开发,而整合的例子不是 ...
struts2+hibernate3+spring2读书笔记4(数据校验器) -
lixia0417:
对,哥们,问一下,这本书中关于S2SH整合开发的例子多吗,就是 ...
struts2+hibernate3+spring2读书笔记4(数据校验器) -
hhr_michael:
谢谢提醒,由于只是着重校验的过程,所以这代码没有在struts ...
struts2+hibernate3+spring2读书笔记4(数据校验器)
第6章 类型转换
本章导读:
类型转换使用广泛,主要用在开发人员将一个字符串转换成更复杂些的对象类型时。因为web中的类型非常单一(在HTTP中所有的信息是String类型),而java是强类型的语言,因些mvc框架一般都会提供字符类型到其他对象类型的转换,Struts2提供了基于ognl表达式的功能强大的转换机制,而且还提供了良好的扩展性,允许开发人员创建自定义的类型转换器。
一.不使用struts2的类型转换器进行类型转换
1.建立工程
2.编写pojo类:User.java 内容如下:
3.编写Action类:simpleConvertionAction.java
4.编写注册页面:simpleReg.jsp
5.注册成功页面:simpleRegSuccess.jsp
6.注册失败页面:error.jsp
7.Struts2配置文件:struts.xml
呵呵,以上7步就完成了不使用struts的类型转换,下面我们来看看继承DefaultConverter类型转换。
二.继承DefaultConverter类进行型转换
1. 编写用户信息转换的类型转换器:UserConveerter.java,该类型转换器用于将用户信息进行解析,解析后将其放置到user对象中,代码如下:
3. 编写jsp页面:defaultConversionReg.jsp,该页面提供给用户输入注册信息:用户名和密码,两者之间以英文逗号隔开,该页面将请求提供给DefaultConvertionAction.该页面的代码如下:
4. 类型转换文件:DefaultConvertionAction-conversion.properties,内容为:
该文件是局部的类型转换器放在需要进行转换的Acion类的同一个包中。
5. 修改struts.xml文件 ,具体内容如下:
经过以上五步后,完成了继承DefaultConverter类进行型转换
三.继承StrutsTypeConverter类进行类型转换
1. 编写类型转换器:UserStrutsConverter.java
以上两步实现了继承StrutsTypeConverter类进行类型转换
四.数组的类型转换
在前面的内容中,讲解了当请求参数为单个值时如何进行类型转换,本实例讲解当属性的类型为数组时如何进行转换。
1. 编写数组属性类型转换器:UserArrayStrutsConverter.java
2.编写Action类:UserArrayConvertionAction.java
5.配置类型转换器:
在xwork-conversion.properties中修改转换器为:
经过以上六步后,数组的类型转换完成。
五.集合的类型转换
常用的集合包括List和Map,本实例讲解当Action中user为List集合时,如何实现类型转换(和数组类似)
1. 编写list集合类型转换器:UserListStrutsConverter.java,代码如下:
2. 编写Action类:UserListConvertionAction.java 具体代码如下:
4.第四步:编写注册成功页面:userListRegSuccess.jsp 代码如下:
5.配置类型转换器(局部的类型转换器),在包目录下建立类型转换文件UserListConvertionAction-conversion.properties,具体内容如下:
6.配置struts.xml
以上六步完成了集合的类型转换。
六.类型转换的错误处理
1. 编写Action类:ExceptionConverter.java
2.编写jsp页面:exceptinConversionReg.jsp
3.修改Struts2配置文件:struts.xml
4.建立局部资源文件:ExceptionConvertionAction.properties(在ExceptionConvertionAction所在的包里新建)
最后经过以上4步就完成了类型转换的错误处理了。
本章导读:
类型转换使用广泛,主要用在开发人员将一个字符串转换成更复杂些的对象类型时。因为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.UserArrayStrutsConverter6.配置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步就完成了类型转换的错误处理了。
发表评论
-
struts2+hibernate3+spring2读书笔记15(核心机制-----IOC)
2010-07-21 12:16 1387... -
struts2+hibernate3+spring2读书笔记14(Spring入门)
2010-06-21 14:31 1019... -
struts2+hibernate3+spring2读书笔记13(Hibernate的事务控制)
2010-06-21 11:27 1139... -
struts2+hibernate3+spring2读书笔记12(操纵实体对象)
2010-06-21 10:07 961... -
struts2+hibernate3+spring2读书笔记11(Hibernate查询)
2010-06-15 14:25 1453... -
struts2+hibernate3+spring2读书笔记10(Hibernate配置文件)
2010-06-14 09:27 1381... -
struts2+hibernate3+spring2读书笔记9(Hibernate入门)
2010-06-10 09:41 923第1 ... -
struts2+hibernate3+spring2读书笔记8(OGNL)
2010-06-09 11:30 1018... -
struts2+hibernate3+spring2读书笔记7(Struts 2 标签库)
2010-06-08 15:15 992... -
struts2+hibernate3+spring2读书笔记6(拦截器)
2010-06-02 16:42 864第 ... -
struts2+hibernate3+spring2读书笔记4(数据校验器)
2010-05-20 17:05 1260最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+H ... -
struts2+hibernate3+spring2读书笔记3(国际化web 应用 )
2010-05-19 10:21 1159最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+H ... -
struts2+hibernate3+spring2读书笔记2(struts2配置文件)
2010-05-17 16:45 1079最近买了谢星星(阿蜜 ... -
struts2+hibernate3+spring2读书笔记1(struts2 开发环境)
2010-05-17 10:10 1243最近买了谢星星(阿蜜果)的企业应用架构设计-Struts2+H ...
相关推荐
使用Struts + Spring + Hibernate完成用户登陆笔记使用Struts + Spring + Hibernate完成用户登陆笔记
struts2+hibernate+spring三大框架知识点笔记
非常详细的SSH笔记,Struts2笔记+Hibernate3.6笔记+Spring3笔记,word文档,内容非常详细,可以直接看我的笔记就能轻松学会框架
简单的SSH项目 使用spring+hibernate+struts2 有详细的创建项目笔记 代码配置都有注释
使用Struts + Spring + Hibernate完成分页笔记使用Struts + Spring + Hibernate完成分页笔记使用Struts + Spring + Hibernate完成分页笔记
留言管理程序_Struts + Spring + Hibernate笔记留言管理程序_Struts + Spring + Hibernate笔记
SSH开发笔记,特别适合入门者学习
轻量级J2EE企业应用实战--Struts+Spring+Hibernate整合开发笔记
Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记.doc
内涵数据库设计模型 和数据库设计代码! 图书管理系统: 数据库使用的mysql 里面的发送e-mail我用的是一个我申请的邮箱在测试 可以用自己的! 代码功能基本都有注释.... 才学完s2sh的入门笔记吧! 供学习使用........
spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合
NULL 博文链接:https://jsrookie.iteye.com/blog/294756
SSH整合学习笔记之struts2+spring+hibernate+c3p0源码
Struts+Spring+Hibernate整合笔记
SSH框架集成是较复杂和难理解的,只有在不断的练习和使用中才能慢慢的理解其中的原理,仅凭看视频是远远不够的,因为这些涉及了尤其是spring底层的好多类以及...本文只要是struts1+spring+hibernate(SSH1)集成问题。
Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记
struts+spring+hibernate配置笔记
Struts+Spring+Hibernate整合笔记
Struts+spring+hibernate学习笔记! - Struts原理与实践
学习框架技术的心得,希望对大家有所帮助,能够少走弯路。