Struts2.0例子

Struts2.0是struts1.0和WebWork2.2合并版本,集成了两大流行MVC框架的优点,对struts框架来说是一个大的提升,同时也更大程度地简化了开发人员的开发过程。
这个例子实现了一个简单的登陆效果,操作步骤如下:
1、首先,要从apache网站上下载struts2.0.11的完整包(http://struts.apache.org/downloads.html),解压后需要找到下列几个文件:
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
2、然后,我们就开始做第一个例子,新建web项目struts2
3、将上面列举的jar文件拷贝到项目struts2\WEB-INF\lib中,或添加自己的strust2.0用户库

 

 

login.jsp

<?xml version="1.0" encoding="UTF-8" ?>   
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml">   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
<title>Insert title here</title>   
</head>   
<body>   
<form action="login.action" method="post">   
username:<input type="text" name="username" /><p>   
password:<input type="password" name="password" /><p>   
<input type="submit" name="Submit" value="提交" />   
</form>   
</body>   
</html>  

 

 

struts1与struts2的区别:
<form action="login.action" method="post">
struts1通过servlet拦截所有发送过来以do结尾的请求,交有ActionServlet控制,决定由那个Action进行处理

result.jsp

<?xml version="1.0" encoding="UTF-8" ?>   
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml">   
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />   
<title>Insert title here</title>   
</head>   
<body>   
    username:${requestScope.username}<br>    
    password:${requestScope.password}    
</body>   
</html>  

 

 

 

修改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>   
    struts2.0</display-name>   
    <welcome-file-list>   
        <welcome-file>login.jsp</welcome-file>   
    </welcome-file-list>   
    <filter>   
        <filter-name>struts2.0</filter-name>   
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>   
    </filter>   
    <filter-mapping>   
        <filter-name>struts2.0</filter-name>   
        <url-pattern>/*</url-pattern>   
    </filter-mapping>   
</web-app>  

 

 

struts1与struts2的区别:
struts1是通过servlet做控制器
struts2这里采用Filter过滤客户端发过来的请求

创建loginAction.java

package com.action;   
public class loginAction {   
    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;   
    }   
       
    public String execute()throws Exception{   
        return "success";          
    }   
       
}  

 

struts1与struts2的区别:
struts1必须继承Action,覆盖execute()
struts2则不需要

添加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.0" extends="struts-default">   
        <action name="login" class="com.action.loginAction">   
            <result name="success">/result.jsp</result>   
        </action>   
    </package>   
</struts>  

 struts1与struts2的区别:
struts1在项目\WEB-INF\struts-config.xml配置文件
struts2在项目\src\struts.xml配置文件

 

o了,简单的例子以完成,下面是代码重构:
使用struts2.0标签,添加校验功能
1、修改login.jsp,改为使用struts2.0标签
导入标签<%@ taglib prefix="s" uri="/struts-tags"%>
把form表单替换为使用struts2.0标签

<s:form action="login">   
    <s:textfield name="username" label="username"></s:textfield>   
    <s:password name="password" label="password"></s:password>   
    <s:submit label="submit"></s:submit>   
</s:form>  

 

(使用标签可以自动换行,按钮默认右对齐)
2、修改loginAction.java
loginAction继承ActionSupport
重写Validate()验证方法

 

 

@Override
	public void validate() {
		if(null==this.getUsername()||"".equals(this.getUsername().trim())){
			this.addFieldError("username", "username error");//添加错误信息
		}
		if(null==this.getPassword()||"".equals(this.getPassword().trim())){
			this.addFieldError("password", "password error");//添加错误信息
		}
	}


3、修改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.0" extends="struts-default">
    	<action name="login" class="com.action.loginAction">
                <!-- 添加出错返回的页面 -->
    	       <result name="input">/login.jsp</result>    	       <result name="success">/result.jsp</result>
     	</action>
    </package>
</struts>



struts1与struts2的区别:
struts1需要在form里添加<html:errors/>标签,来提示错误处理的信息
struts2则不需要

匹配用户名为hello,密码为world
1、修改loginAction.java下的execute()方法

public String execute()throws Exception{
		if("hello".equals(this.getUsername().trim())&&"world".equals(this.getPassword().trim())){
			return "success";	
		}
		else{
			this.addFieldError("username", "username or password error");//定义在username上面提示错误信息
			return "failer";	
		}
			
	}


2、修改struts.xml,增加failer映射

<?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.0" extends="struts-default">
    	<action name="login" class="com.action.loginAction">
    		<result name="input">/login.jsp</result>
    		<result name="success">/result.jsp</result>
                  <!-- 增加failer映射 -->
    		<result name="failer">/login.jsp</result>
    	</action>
    </package>
</struts>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值