做了这么久的struts开发,一直没有总结过。最近有些时间,就从搭建框架一点点写吧,主要的参考书籍是电子工业出版社出版的《Struts2权威指南:基于WebWork核心的MVC开发》,作者是李刚。虽然此书中问题不少,但由于其涉及到的其他相关技术较多,还是有一定的参考价值。
首先,开发需要IDE,我之前用的是MyEclipse,其中有可视化工具,可以把Struts、Spring、Hibernate等框架可视化的加入到项目中。鱼和熊掌不可兼得,毕竟MyEclipse的功能强大是建立在收费的基础上的,因此最近开始直接利用eclipse。eclipse有很多版本,如:for JEE,for Java,for RCP,for C++等,我们当然选择for JEE的版本,即:Eclipse IDE for Java EE Developers。
下载成功后,需要安装JDK(当然也有不需要安装JDK的版本),然后就可以打开Eclipse开始新建项目。File-》New-》Project,自然是选择Dynamic Web Project,然后项目名称根据你自己的情况,我建立的项目名称为dianziStruts2Base,Finish完成。
下面我们需要把项目部署到Tomcat服务器中,建议使用5.5版。在java透视中,下方有一个Servers标签,在其中,new一个Servers,并把对应的要部署的项目从左侧移到右侧即可。在配置和使用服务器方面,自然依旧是MyEclipse更方便直观。现在我们需要将Struts2框架加入到项目中,下载完Struts2的框架包后,在lib文件夹里我们只需找出
xwork-2.0.3.jar
struts2-core-2.0.8.jar
ognl-2.6.11.jar
freemarker-2.3.8.jar
这四个jar包(jar包的版本有可能与我的不一致,没关系)加载到项目即可,Struts2框架lib文件夹下其他jar包可根据项目需要,另行加入。加入这4个jar包的方法是,在项目中找到dianziStruts2Base-》WebContent-》WEB-INF-》lib,然后复制这四个jar包,再粘贴到项目下的lib中,此时可以看到dianziStruts2Base-》Web App Libraries中新增了这四个jar包,框架导入成功。
接下来,开始编写我们的第一个jsp页面。在WebContent下新建一个default.jsp页面,此页面暂时不可修改为其他名称,待以后懂得如何在web.xml中配置首页面后,可以改为其他名称。其中需要注意一下<form action="login.action" method="post">,具体含义后面会讲解。default.jsp页面内容如下:
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!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=GBK">
<title>首页</title>
</head>
<body>
<form action="login.action" method="post">
<table align="center">
<caption>用户登录</caption>
<tr>
<td>用户名:<input type="text" name="username" /></td>
</tr>
<tr>
<td>密 码:<input type="password" name="password" /></td>
</tr>
<tr>
<td><input type="submit" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>
下面开始建立我们的分发控制器,即Action。在src文件夹下建立com.dianzi.login.action.LoginAction类,此类可以不用实现Action接口,但就不能用Action接口中内置的SUCCESS等属性,这是Struts2比Struts1进步的一个显著特征。
/**
*
*/
package com.dianzi.login.action;
import com.opensymphony.xwork2.Action;
/**
*
* @author 点子二木
* @date 2008-12-18
* @version 1.0
*/
public class LoginAction implements Action {
private String username;//用户名
private String password;//密码
private String result;//返回结果
/*
* (non-Javadoc)
*
* @see com.opensymphony.xwork2.Action#execute()
*/
public String execute() throws Exception {
return null;
}
/**
* 登录
*
* @return
*/
public String login() {
if (username.equals(password)) {
return SUCCESS;
} else {
return ERROR;
}
}
/**
* 登出
*
* @return
*/
public String logout() {
result = "请重新登录!";
return SUCCESS;
}
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 getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
其中,属性username、password,是首页default.jsp中的属性,两者必须对应一致。里面的get、set方法不可少。当首页表单提交后,即点击登录按钮后,触发action="login.action",Struts2框架将会在Struts2的配置文件中找名称为login的Action,下面我们需要新建这个配置文件,即struts.xml。新建的位置必须是根目录下,即src下,且文件名不可改。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configeration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 登录配置文件 -->
<include file="struts-login.xml" />
</struts>
原本可以直接在struts.xml中配置Action对应路径,但为了防止系统扩大,我们可以将配置路径写到其他xml文件中,然后在struts.xml中引用这个文件,这样我们可以把相关模块的配置文件写到一个配置文件中,例如我新建了一个struts-login.xml,位置必须和struts.xml在一个目录下,但名称可以任意。下面是struts-login.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configeration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="login" extends="struts-default">
<action name="login"
class="com.dianzi.login.action.LoginAction" method="login">
<result name="success">/jsp/welcome.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
<action name="logout"
class="com.dianzi.login.action.LoginAction" method="logout">
<result name="success">/jsp/login.jsp</result>
<result name="error">/jsp/error.jsp</result>
</action>
</package>
</struts>
我们可以看到,<action name="login"
class="com.dianzi.login.action.LoginAction" method="login">一句,是将name="login"的Action配置给了LoginAction的login方法。如果不写参数 method="login",则将该login配置给LoginAction的execute方法。其中name="login"的login就是页面中所引用的action="login.action"的login,两者必须一致,但name的值可以为任意,只要两者一致即可。
另外还有一句,<result name="success">/jsp/welcome.jsp</result>是指当LoginAction的login方法return的字符与result标签中哪个name值匹配,则响应完login.action后所跳转到的新页面。login方法中只有return SUCCESS;或者return ERROR;其实SUCCESS在Action接口中就定义成了“succes”,而ERROR定义成了“error”。
最后,我们需要将WEB-INF下的web.xml中加入过滤器。
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
<display-name>dianziStruts2Base</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<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>
</web-app>
这样,我们简单登录及跳转页面就做好了,详细的工程在附件中。
分享到:
相关推荐
NULL 博文链接:https://dianziermu.iteye.com/blog/315638
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...
推荐一个Eclipse的插件来协助J2EE开发,这个插件名 称nqLomboz。Lomboz插件不仅仅可用于支持JSP语法 检查和调试,它更主要的作用是能够将很多Java应用服 务器(~[1Tomcat、JBOss、WebLogic等)、J2EE组件 和Web应用...
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,很不容易。 不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
eclipse-J2EE(3.4.1)_eclipse-J2EE.part1.rar eclipse-J2EE(3.4.1)_eclipse-J2EE.part2.rar eclipse-J2EE(3.4.1)_eclipse-J2EE.part3.rar eclipse-J2EE(3.4.1)_eclipse-J2EE.part4.rar
NULL 博文链接:https://gnnan.iteye.com/blog/1169938
Eclipse-J2EE开发配置指南,超详细!
Eclipse是一个非常优秀的集成开发环境,这个在IBM支持下的开放源码项目经过一段时期的发展完善,已经为广大Java开发者所熟悉。Eclipse的出现,为Java开发者提供了免费使用强大的Java IDE的机会,通过集成大量的...
eclipse-J2EE(3.4.1)_eclipse-J2EE.part1.rar eclipse-J2EE(3.4.1)_eclipse-J2EE.part2.rar eclipse-J2EE(3.4.1)_eclipse-J2EE.part3.rar eclipse-J2EE(3.4.1)_eclipse-J2EE.part4.rar
精通J2EE——Eclipse+Struts+Hibernate+Spring整合应用案例 pdf电子书, 包含所有18个章节的完整版, 美中不足的是扫描质量不是很高,且是第一版的,不是目前最新的第二版! 请看清楚了再下,免得后悔! 共有两个部分-这...
<精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例>源码和数据库。这是第1卷,请下载完7卷后解压。
Maven2+Eclipse开发J2EE企业级项目。
本书较为全面地介绍J2EE Web应用开发的程序设计技术。书中介绍了相关的知识点,然后讲解网上购物子系统、公告管理系统、网上书店、BBS系统、信息发布平台、学生课程及成绩管理系统等8个实用的系统。
精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例.rar
精通J2EE--ECLIPSE、STRUTS、HIBERNATE及SPRING整合应用案例 代码 ch06-2
使用Eclipse开发J2EE培训PPT.ppt
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。