学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初体验** Struts 2是一款强大的基于MVC(Model-View-Controller)设计模式的Java Web框架,它旨在简化企业级应用程序的开发。作为一个初学者,了解并掌握Struts 2的基本概念和操作流程是至关重要的。 **...
本篇文章将带你初识Struts2,并通过实际操作来体验其工作原理和基本用法。提供的压缩包文件"teststruts2"可能包含了示例代码或配置文件,用于辅助学习。 首先,我们了解Struts2的核心概念: 1. **Action类**:在...
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...
总结,Struts2的国际化支持使得开发者能够轻松地为多种语言的用户提供一致的体验。从创建Resource Bundle,配置Struts2,到在Action和视图中使用,整个流程是直观且灵活的。通过理解这些基本概念和实践,你可以为你...
总的来说,"初涉StrutsMenu"这篇博客旨在帮助初学者理解和掌握如何在Struts框架中使用StrutsMenu来构建动态菜单,从而提升Web应用的用户体验和安全性。通过阅读和实践,开发者可以更好地掌握这个工具,并将其应用于...
Chapter07通常会涉及Struts2与Ajax的集成,使Web应用具有更丰富的用户体验。Chapter08可能会介绍如何利用Struts2与其他技术(如Spring、Hibernate等)进行集成,实现更强大的企业级功能。Chapter09可能涵盖了异常...