最近维护一个项目,是用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的更多相关文章

  1. BAE 环境下配置 struts2 + spring + hibernate(SSH)(二)struts2

    在myeclipse下开发的 应用但是 放到BAE下就出现了问题,虽然显示发布成功,但是访问的时候就会出现503 Service Unavailable 错误.通过调整 web.xml 发现纯Serv ...

  2. BAE 环境下配置 struts2 + spring + hibernate(SSH)(三)spring&hibernate

    1.在lib中加入必要的包,导入后结果如下: lib打包下载:SSH-lib.jar  (struts2.3.1.2  spring3.0.5 hibernate3.6.10.Final) 只包含必要 ...

  3. BAE 环境下配置 struts2 + spring + hibernate(SSH)(一)准备

    1.首先选择版本控制 SVN 或者 Git ,但是由于Git在windows下需要环境,所以优先选择SVN. 2.安装一个SVN客户端 windows下使用TortoiseSVN:立即下载 注意:BA ...

  4. MyEclipse如何配置Struts2源码的框架压缩包

    1.MyEclipse如何配置Struts2源码的框架压缩包 如本机的Struts2框架压缩包路径为:D:\MyEclipseUserLibraries\struts\struts-2.3.15.3- ...

  5. Myeclipse下配置svn

    转载高鑫的..嘻嘻.. MyEclipse安装配置SVN 2013.10.15 No Comments 67 Views 配置之前请先关闭MyEclipse,OK开始了 1.解压site-1.6.18 ...

  6. 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 ...

  7. Myeclipse下的struts2.3.8 配置 保证绝对好用

    转自:http://blog.csdn.net/oxuannishi/article/details/8538386 1.建立web project工程,我的结构如下: 2.这一步非常重要:引入必要的 ...

  8. Eclipse下配置和使用Hibernate Tools

    本文转自:http://radiumwong.iteye.com/blog/358585 Hibernate Tools可以通过访问已经建立好的数据库以反向工程方式生成POJO文件. 今天就来说一下如 ...

  9. Eclipse myeclipse下配置HanLP的教程

    一.说明 博主的配置 1:window10 2:myeclipse 3:jdk1.8 备注:文章分享自贾继康的博客,博客使用的hanlp是1.6.8的版本.大家可以去下载最新的1.7版本了,也比较推荐 ...

随机推荐

  1. Ubuntu12.04 修复GRUB

    电脑安装了双系统,本来好好的GRUB管理启动,在重装过之后就只能进win7了,所以尝试将GRuB重新安装到mbr,使用GRUB作为启动管理程序. 1.制作U盘系统 使用软碟通,讲Ubuntu12.04 ...

  2. std::string与output-operator"<<"的兼容问题

    经查阅资料得知,“在某些编译器下std::string,需要使用c_str()才能作为output-operator "<<" 的参数” std::string tit ...

  3. Linux系统下Shell命令行快捷键实用技巧

    # Ctrl + A# Ctrl + E切到命令行开始|结尾 # esc+f往右跳一个词# esc+b往左跳一个词 # Ctrl + W清除光标之前一个单词# esc + d 删除光标后的一个词 # ...

  4. [Linux]read/write和fread/fwrite有什么区别

    转自:http://blog.csdn.net/xiaofei0859/article/details/51145051 二者都是对文件进行操作,那么二者有什么区别,用的时候该如何选择呢? 1. 区别 ...

  5. qt setData()和data()

    简述 在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来自配置文件.注册表.数据库.或者是Server. 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被 ...

  6. memcached server LRU 深入分析

    Memcached,人所皆知的remote distribute cache(不知道的可以javaeye一下下,或者google一下下,或者baidu一下下,但是鉴于baidu的排名商业味道太浓(从最 ...

  7. [转]使用rosbridge协议实现安卓跟ros的解耦

    安卓与ROS通信的现状 因为ROS官方支持的语言绑定只有C++和Python,所以目前安卓想与ROS通信,必须借助半官方的rosjava包,而Rosjava太重了,因为它跟C++/Python一样,是 ...

  8. linux使用ip能ping通,但使用域名却不能访问的解决方法

    使用命令:yum -y update进行更新测试,一般测试结果为couldn't resolve hostmirrors.aliyun.com 解决方式参考博客couldn't resolve hos ...

  9. datagrid.celltips.js

    /** * Created with JetBrains WebStorm. * User: cao.guanghui * Date: 13-6-26 * Time: 下午11:27 * To cha ...

  10. 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面. 与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉 ...