Myeclipse下配置struts2和hibernate
最近维护一个项目,是用struts2做的,所以特意学了下struts的入门,否则代码都看不懂啊。下面记录下过程。Myeclipse 版本为2014.struts2,hibernate为4.1。
1、既然要用到hibernate,自然要有个数据库了,我在localhost的数据库test里建了个表t_user;
CREATE TABLE `t_user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`sex` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
2、打开myeclipse,然后创建一个web项目。
3、创建一个数据库连接
然后右击选new,新建一个连接。
选择mysq填入相应的信息,点保存密码,可以测试下,正确的话会给出下面的提示
如果出现乱码的情况,先要保证项目和数据库的编码一致,我这里用的都是utf-8。在数据源那儿这样写
jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8
但是如果你页面编码都统一配置了UTF-8,应该都不会乱的。还有你的数据库编码也要一致。
4、添加hibernate
双击myconnect打开链接,展开数据库,找到表t_user,右击并选择“Hibernate Reverse Engineering……”,
然后填写dao类所在的包,例如:com.myeclipse.hibernate
完成之后回到项目列表里,右击项目名称添加Hibernate
此处没有了,因为已经添加过了。
5、添加struts2
同上图操作,添加struts2,可以看到只剩下struts1了,因为struts2已经添加过了,之后项目src下就可以看到hibernate和struts的配置文件了,
6、配置实用struts2,这里先要配置web.xml
<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>
这里是个最简单的配置,可以根据需要增加内容。我看默认里 <url-pattern>*.action</url-pattern>这里是不对的。具体还待学习,这样的后果是报错,我这样部署到tomcat下的时候,这个应用是个false。Tomcat的webapp目录下的各个应用是会有的状态为true,有的为false的。这个可以通过tomcat的manage查看。
然后就要配置struts.xml了,这里说明了访问的url如何对应到class里,调用什么方法,并且根据结果执行后续的操作,比如执行某个jsp文件。
<struts>
<package name="com.example.strus2" extends="struts-default" namespace="/">
<global-results>
<result name="input">/error.jsp</result>
</global-results>
<action name="addUser" class="com.example.struts.action.LoginAction">
<result name="success">/success.jsp</result>
</action>
<action name="info" class="com.example.struts.action.LoginAction" method="addUser">
<result name="success">/error.jsp</result>
</action>
</package>
</struts>
可以参考这篇文章。http://www.cnblogs.com/kay/archive/2007/11/28/976120.html,method如果省去,就会总是返回success,但没有执行任何方法,开始还以为可以省去呢。
之后就要写class了,先创建com.example.struts.action包,在这个包下创建LoginAction类,这个和上面的class对应。
package com.example.struts.action;
import com.opensymphony.xwork2.ActionSupport;
import com.myeclipse.hibernate.TUser;
import com.myeclipse.hibernate.TUserDAOFactory;
public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String sex;
public String addUser() {
System.out.println("name is: " + name + ", and sex is: " + sex);
TUserDAOFactory daof = new TUserDAOFactory();
TUser tuser = new TUser(this.name, this.sex);
daof.addUser(tuser);
return "success";
}
public String info() {
System.out.println("name is:" + name);
return "success";
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return this.sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
然后添加error.jsp success.jsp login.jsp文件。
error.jsp 用最简单的html文件就行。
success.jsp 参考代码如下。
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
登录页面<br>
<s:form action="addUser.action">
<s:textfield name="name" label="姓名" />
<s:textfield name="sex" label="性别" />
<s:submit value="添加" />
</s:form>
</body>
</html>
这里的form采用了struts2标签。 注意要有红色字的那行代码才支持struts。
success.jsp 的参考代码如下,这里用到了<s:property value="name" />,这里的name对应对象里的this.name,他会自动通过getName来获取。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
登录页面<br>
姓名:<s:property value="name" /><br />
性别:<s:property value="sex" />
</body>
</html>
实际操作下,然后看看数据库的变化。
遇到的问题,一个警告
No configuration found for the specified action: 'addUser' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
解决方法是:<s:form action="addUser" method="post" namespace="/"> 添加namespace=“/”,然后就没有这个提示了。
Myeclipse下配置struts2和hibernate的更多相关文章
- BAE 环境下配置 struts2 + spring + hibernate(SSH)(二)struts2
在myeclipse下开发的 应用但是 放到BAE下就出现了问题,虽然显示发布成功,但是访问的时候就会出现503 Service Unavailable 错误.通过调整 web.xml 发现纯Serv ...
- BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&hibernate
1.在lib中加入必要的包,导入后结果如下: lib打包下载:SSH-lib.jar (struts2.3.1.2 spring3.0.5 hibernate3.6.10.Final) 只包含必要 ...
- BAE 环境下配置 struts2 + spring + hibernate(SSH)(一)准备
1.首先选择版本控制 SVN 或者 Git ,但是由于Git在windows下需要环境,所以优先选择SVN. 2.安装一个SVN客户端 windows下使用TortoiseSVN:立即下载 注意:BA ...
- MyEclipse如何配置Struts2源码的框架压缩包
1.MyEclipse如何配置Struts2源码的框架压缩包 如本机的Struts2框架压缩包路径为:D:\MyEclipseUserLibraries\struts\struts-2.3.15.3- ...
- Myeclipse下配置svn
转载高鑫的..嘻嘻.. MyEclipse安装配置SVN 2013.10.15 No Comments 67 Views 配置之前请先关闭MyEclipse,OK开始了 1.解压site-1.6.18 ...
- Myeclipse下配置SVN报错问题 svn: E175002: java.lang.RuntimeException: Could not generate DH keypair(转)
转:http://blog.csdn.net/yulong_1988/article/details/51459936 在myeclipse下安装svn插件,出现了Could not generate ...
- Myeclipse下的struts2.3.8 配置 保证绝对好用
转自:http://blog.csdn.net/oxuannishi/article/details/8538386 1.建立web project工程,我的结构如下: 2.这一步非常重要:引入必要的 ...
- Eclipse下配置和使用Hibernate Tools
本文转自:http://radiumwong.iteye.com/blog/358585 Hibernate Tools可以通过访问已经建立好的数据库以反向工程方式生成POJO文件. 今天就来说一下如 ...
- Eclipse myeclipse下配置HanLP的教程
一.说明 博主的配置 1:window10 2:myeclipse 3:jdk1.8 备注:文章分享自贾继康的博客,博客使用的hanlp是1.6.8的版本.大家可以去下载最新的1.7版本了,也比较推荐 ...
随机推荐
- basic_string
// Components for manipulating sequences of characters -*- C++ -*- // Copyright (C) 1997, 1998, 1999 ...
- ERROR 1130 (HY000): Host '192.168.0.190' is not allowed to connect to this MySQL serv
环境: CentOS6.2.MySQL5.1 问题描述: 在配置文件中将需要连接的MySQL的host设置为192.168.0.190(其实就是我自己的IP地址),然后运行自己的程序,结果返回MySQ ...
- FreeRtos——单任务
原创(当然借鉴了官网资料^_^): 在之前的移植工作准备好之后,我们需要调用freertos提供给我们的API函数实现操作系统地运行.首先,第一个函数: 任务函数任务是由 C 语言函数实现的.唯一特别 ...
- lua工具库penlight--05日期和时间
创建和显示时间 Date类提过了简洁的使用date和time的方法.它依赖于os.date和os.time. Date对象可以通过table创建,如果os.date,同时提过了获取和设置date 成员 ...
- osgi实战学习之路:6. Service-1
什么是Service? 它是注冊到osgi的一个java对象 Service注冊: 通过BundleContext::registerService(java.lang.String[] clazze ...
- 三篇很好的讲解keppalived的博客
VRRP协议介绍 参考资料: RFC 3768 1. 前言 VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定 ...
- sudo非交互式输入密码
sudo非交互式输入密码 编辑 删除 我们在使用sudo命令的时候,为了避免交互,可以使用 echo 'password' |sudo -S cmd 这样的方式,通过管道传入密码,就不用手动输入了. ...
- 面向对象设计原则一:单一职责原则(SRP)
单一职责原则(SRP) 定义:系统中的每一个类都应该只有一个职责. 好处:高内聚.低耦合. 解释说明: 单一职责也就是说我们应该让一个类或一个对象只做一件事情,每个类所要关注的就是自己要完成的职责是什 ...
- 深度剖析java编码,彻底解决java乱码问题_1
理解: 1,Java编译器(即编译成class文件时) 用的是unicode字符集. 2,乱码主要是由于不同的字符集相互转换导致的,理论上各个字符的编码规则是不同的,是不能相互转换的,所以根本解决乱码 ...
- ubuntu 14.04/16.04/18.04 yum安装 zabbix-agent 教程
备忘 环境:Ubuntu 14.04 基于官网配置官网链接 ①导入源: ### Ubuntu 18.04 # wget https://repo.zabbix.com/zabbix/3.4/ubunt ...