struts2初体验

      学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不久,可能上面的认识有误,欢迎朋友们指正!加油!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值