初识struts2和hibernate在MyEclipse下整合
2015-03-15 21:41
393 查看
在MyEclipse下插件方便很多,所以转战MyEclipse。
整合struts2和hibernate,例子是一个简单的登陆的功能,数据库是MySql。
先是配Struts2环境
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.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception"
result="error" />
</global-exception-mappings>
<action name="loginn" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
LoginAction.java
package com.test.action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import com.test.dao.UserDaoImpl;
import com.test.model.User;
public class LoginAction extends ActionSupport {
private User user = new User();
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void validate() {
if (user.getUsername().equals("")) {
this.addActionError("用户名不能为空");
}
if (user.getPassword().equals("")) {
this.addActionError("密码不能为空");
}
}
public String execute() {
System.out.println(user.getUsername() + "," + user.getPassword());
String t = "admin";
if (user.getUsername().equals(t)&&user.getPassword().equals(t)) {
return SUCCESS;
}
this.addActionError("用户名密码错误!");
return ERROR;
}
}
struts2框架正常。。
再加Hibernate。
User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test.model">
<class name="User" table="test_hibernate_user">
<id name="id" type="integer">
<generator class="identity" />
</id>
<property name="username" type="string" />
<property name="password" type="string" />
</class>
</hibernate-mapping>
UserDaoImpl.java
package com.test.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.test.model.HibernateSessionFactory;
import com.test.model.User;
public class UserDaoImpl implements UserDao {
public boolean login(User user) {
try {
System.out.println("1111");
Session session = HibernateSessionFactory.getSession();
Query q = session
.createQuery("from User as a where a.username=? and a.password=?");
q.setString(0, user.getUsername());
q.setString(1, user.getPassword());
List list = q.list();
System.out.println("list " + list);
if (list.size() != 0) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
HibernateSessionFactory.closeSession();
}
return false;
}
public static void main(String[] args) {
User u = new User("admin", "admin");
new UserDaoImpl().login(u);
}
}
LoginAction.java改为:
public String execute() {
System.out.println(user.getUsername() + "," + user.getPassword());
// String t = "admin";
boolean b = new UserDaoImpl().login(user);
System.out.println(b);
if (b) {
return SUCCESS;
}
this.addActionError("用户名密码错误!");
return ERROR;
}
照理来说没啥问题。
但是,登陆的时候,只能输出上面的打印信息,也没有报错,不知道怎么回事,返回也异常。
System.out.println("1111");
Session session = HibernateSessionFactory.getSession();
Query q = session
.createQuery("from User as a where a.username=? and a.password=?");
q.setString(0, user.getUsername());
q.setString(1, user.getPassword());
List list = q.list();
System.out.println("list " + list);
然后用一个单纯的java程序测试了一下,结果
部分代码:
public static void main(String[] args) {
User u = new User("admin", "admin");
new UserDaoImpl().login(u);
}
打印出了好多信息。。。。为什么之前没有打印出来,这里报错了。。。。
NoSuchMethodError: antlr.collections.AST.getLine()I
百度到了这篇http://www.cnblogs.com/songhaipeng/p/3323541.html,按照上面的方法,删除antlr2.7.2,之后运行正常。
再来测试web,一切正常。。。。。。
无语了。。
为什么异常信息有些没有在服务器打印出来。。。。。
总的来说,还是有收获的,有点曲折。。。
整合struts2和hibernate,例子是一个简单的登陆的功能,数据库是MySql。
先是配Struts2环境
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.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception"
result="error" />
</global-exception-mappings>
<action name="loginn" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
LoginAction.java
package com.test.action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import com.test.dao.UserDaoImpl;
import com.test.model.User;
public class LoginAction extends ActionSupport {
private User user = new User();
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void validate() {
if (user.getUsername().equals("")) {
this.addActionError("用户名不能为空");
}
if (user.getPassword().equals("")) {
this.addActionError("密码不能为空");
}
}
public String execute() {
System.out.println(user.getUsername() + "," + user.getPassword());
String t = "admin";
if (user.getUsername().equals(t)&&user.getPassword().equals(t)) {
return SUCCESS;
}
this.addActionError("用户名密码错误!");
return ERROR;
}
}
struts2框架正常。。
再加Hibernate。
User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test.model">
<class name="User" table="test_hibernate_user">
<id name="id" type="integer">
<generator class="identity" />
</id>
<property name="username" type="string" />
<property name="password" type="string" />
</class>
</hibernate-mapping>
UserDaoImpl.java
package com.test.dao;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import com.test.model.HibernateSessionFactory;
import com.test.model.User;
public class UserDaoImpl implements UserDao {
public boolean login(User user) {
try {
System.out.println("1111");
Session session = HibernateSessionFactory.getSession();
Query q = session
.createQuery("from User as a where a.username=? and a.password=?");
q.setString(0, user.getUsername());
q.setString(1, user.getPassword());
List list = q.list();
System.out.println("list " + list);
if (list.size() != 0) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
HibernateSessionFactory.closeSession();
}
return false;
}
public static void main(String[] args) {
User u = new User("admin", "admin");
new UserDaoImpl().login(u);
}
}
LoginAction.java改为:
public String execute() {
System.out.println(user.getUsername() + "," + user.getPassword());
// String t = "admin";
boolean b = new UserDaoImpl().login(user);
System.out.println(b);
if (b) {
return SUCCESS;
}
this.addActionError("用户名密码错误!");
return ERROR;
}
照理来说没啥问题。
但是,登陆的时候,只能输出上面的打印信息,也没有报错,不知道怎么回事,返回也异常。
System.out.println("1111");
Session session = HibernateSessionFactory.getSession();
Query q = session
.createQuery("from User as a where a.username=? and a.password=?");
q.setString(0, user.getUsername());
q.setString(1, user.getPassword());
List list = q.list();
System.out.println("list " + list);
然后用一个单纯的java程序测试了一下,结果
部分代码:
public static void main(String[] args) {
User u = new User("admin", "admin");
new UserDaoImpl().login(u);
}
打印出了好多信息。。。。为什么之前没有打印出来,这里报错了。。。。
NoSuchMethodError: antlr.collections.AST.getLine()I
百度到了这篇http://www.cnblogs.com/songhaipeng/p/3323541.html,按照上面的方法,删除antlr2.7.2,之后运行正常。
再来测试web,一切正常。。。。。。
无语了。。
为什么异常信息有些没有在服务器打印出来。。。。。
总的来说,还是有收获的,有点曲折。。。
相关文章推荐
- MyEclipse下struts2、spring、hibernate整合
- MyEclipse下struts2、spring、hibernate整合
- MyEclipse下struts2、spring、hibernate整合
- struts2、hibernate、spring的整合步骤
- 基于Annotation的SSH整合例子 Struts2 Spring3 Hibernate3
- spring+hibernate3+struts2整合完整配置
- Hibernate之struts2整合hibernate以及MVC分层架构的使用
- Struts2、Spring、Hibernate整合ExtJS
- Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发
- 使用myeclipse 应用struts2 + spring + hibernate 实现CRUD
- 使用MyEclipse整合Struts+Spring+Hibernate时,在“applicationContext.xml”中提示class"org.apache.commons.dbcp.Basi
- struts2,hibernate,spring三大框架整合的注册程序(xml 配置,mysql数据库)
- Struts2、Hibernate、Spring整合时如何向Servlet注入属性
- Struts2整合Hibernate
- 虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27
- 【Java EE 学习 53】【Spring学习第五天】【Spring整合Hibernate】【Spring整合Hibernate、Struts2】【问题:整合hibernate之后事务不能回滚】
- Struts2、Hibernate、Spring整合的泛型DAO,以及通用的分页技术
- Spring整合Struts2和Hibernate+Maven(二)之SSH的配置文件
- SSH2(Struts2、Spring3与Hibernate3)的整合