学struts2也有那么一阵子了,感觉还不错。同struts1.x相比较起来,struts2要方便得多。从配置上来看,struts2的页面明显要简洁一些。在struts1.x中,每一个jsp页面,对应于一个Form表单,转到后台去处理,就得对应于一个form和一个actionForm,form主要对应表单的每个属性,以及get和set方法,还可以使用validate进行验证,但我们更多的,是采用验证框架去处理,struts1.x的验证框架总感觉比较复杂,需要一些正则表达式方面的知识。而struts2则没有对应的form和actionForm,它把两个东西合在一块了,只有一个action,换句话说,一个页面表单提交过来的数据,对应于一个form,这样感觉更"像"mvc一点,思路也很清晰。下面给出一个struts2入门级的例子。
注:开发工具为myEclipse
login.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login</title>
</head>
<body>
<form action="login.action" method="post">
username:<input type="text" name="username"> <br>
password:<input type="password" name="password"><br>
<input type="submit" value="submit">
<input type="reset" value="reset">
</form>
</body>
</html>
LoginAction.java
package action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
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;
}
//在struts2中,execute()方法是自动执行的
public String execute() throws Exception{
if("zc".equals(this.getUsername().trim())&&"123".equals(this.getPassword().trim())){
return "success";
}else{
/*系统默认的页面是input,也就是login.jsp,可以参看后面的struts.xml配置, 如果用户名和密码输入错误,则返回原来的页面,并给出错误提示*/
this.addFieldError("username","username or password is not correct");
return "input";
}
}
public void validate(){
if("".equals(this.getUsername())||null==this.getUsername().trim()){
this.addFieldError("username","username can not be null");
}
if("".equals(this.getPassword())||null==this.getPassword().trim()){
this.addFieldError("password","password can not be null");
}
}
}
result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>result</title>
</head>
<body>
<%=request.getParameter("username")%><br>
<%=request.getParameter("password")%>
</body>
</html>
struts.xml
<?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">
<action name="login" class="action.LoginAction">
<result name="success">/result.jsp</result><!-- 页面验证成功,跳转到result.jsp-->
<result name="input">/login.jsp</result><!-- 页面验证失败,返回到login.jsp-->
</action>
</package>
</struts>
web.xml
<?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>
</web-app>
整个程序的页面逻辑非常简单,用户从login.jsp登陆,如果用户名不是zc 或密码不是123,则系统返回login.jsp并给出错误信息。呵呵,算是我的第一个struts2程序吧。
PS:本人刚刚学struts2不久,可能上面的认识有误,欢迎朋友们指正!加油!
分享到:
相关推荐
Struts 2初体验 PPT课程说明 第一步:加载Struts2 类库 第二步:配置web.xml 第三步:开发视图层页面 ...
Struts 2 第二章 Struts 2 初体验。pdf课件
视频第二部分 下载视频前请看博客详细 博文链接:https://dlivan.iteye.com/blog/65619
32 Struts 2初体验 33 Struts 2配置详解 34 Struts 2深入 拦截器 35 Struts 2综合应用 36 类型转换和OGNL 37-40 项目案例:在线投票系统 41 jsp servlet struts总结 42 Hibernate 入门 43 Hibernate 关联映射 44 HQL...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
2.1 Java项目开发初体验 11 2.1.1 新建Java项目 12 2.1.2 导入外部Java类 16 案例2-1 随机抽奖程序的实现 18 2.1.3 打开及关闭已有Java项目 22 2.2 Eclipse中编写Java程序的技巧 24 2.2.1 新建Java类 ...
maven初体验源码,包含web.xml,pom.xml,struts2文件等,欢迎大家免费下载,一起讨论并进步。
SSH初体验 1 什么是SSH 都说Y2学年J2EE方向的学习重点是SSH框架的掌握。那么什么是SSH呢?是否真的开发J2EE大型框架很难呢?今天我们将通过一个实例,在常用IDE—Eclipse3.2.2+MyEclipse5.5.1+Tomcat6.0的基础之上给...
模拟http请求 4.http和https协议区别 第二节:截取HTTP请求 1.burpsuit初体验 2.fiddler介绍 3.winsocke*pert实验 第三节:HTTP应用:黑帽SEO之搜索引擎劫持 第二天 信息刺探 第一节:googlehack 1.搜集子域名 2....
2.2.1 Burp Suite Proxy 初体验 15 2.2.2 Fiddler 19 2.2.3 WinSock Expert 24 2.3 HTTP应用:黑帽SEO之搜索引擎劫持 24 2.4 小结 25 第3章 信息探测 26 3.1 Google Hack 26 3.1.1 搜集子域名 26 3.1.2 搜集Web信息 ...
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...