教你整合Struts2 + Hibernate

上周写出来的登录注册,用的是框架版本是Struts2.0.11 Hibernate3.1,开发工具是MyEclipse。
使用在服务器端验证的方法。
在register.jsp页面中写入以下代码:
[code]
<s:form action="register">

<s:textfield name="username" label="username"></s:textfield>

<s:password name="password" label="password"></s:password>

<s:submit label="submit" align="center"></s:submit>
</s:form>
[/code]
在result.jsp页面中加入以下代码:
[code]
<s:text name="username:"></s:text>
<s:property value="username"/><br>
<s:text name="password:"></s:text>
<s:property value="password"/>
[/code]
web.xml中的代码:
[code]
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
[/code]
在index.jsp页面中加入一行JS或JAVA代码使其自动跳转到home.action
在struts.xml中代码如下:
[code]
<?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="struts2" extends="struts-default" namespace="/user">
<action name="register" class="action.RegisterAction">
<result name="success">/result.jsp</result>
<result name="input">/register.jsp</result>
</action>
<action name="home" class="action.HomeAction">
<result name="success">/register.jsp</result>
</action>
</package>
</struts>
[/code]
HomeAction中直接return "success",在RegisterAction中代码如下:
[code]
package action;
/*
* by
* tuxiliang
* http://hi.baidu.com/oruja
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import vo.Person;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import dao.impl.PersonDAO;


@SuppressWarnings("serial")
public class RegisterAction extends ActionSupport {
private String username;
private String password;
PersonDAO person;
private List messages = new ArrayList();

public List getMessages() {
return messages;
}
public void setMessage(List messages) {
this.messages = messages;
}
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 String execute()throws Exception
{
person = new PersonDAO();
List list = person.findByName(this.getUsername().trim());
if(list.isEmpty()){
Person user = new Person(this.getUsername(),this.getPassword());
person.save(user);
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
session.put("username",this.getUsername());
return "success";
}
else {
this.addFieldError("username", "the username is already registered!");
return "input";
}
}
@Override
public void validate() {
if(null==this.getUsername()||"".equals(this.getUsername().trim())){
this.addFieldError("username", "username required!");

}
else if(null==this.getPassword()||"".equals(this.getPassword().trim())){
this.addFieldError("password", "password required!");
}

}
}
[/code]
另外还有一个struts.properties的文件,是为了防止报错,网上有解释,有关hibernate的映射文件以及PersonDAO就不贴上来了,相信大家也知道是怎么回事。运行服务器后图示效果见附件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值