首页 > 代码库 > 【SSH学习笔记】—从配置Struts1环境到简单实例

【SSH学习笔记】—从配置Struts1环境到简单实例

在DRP分销系统中我们已经接触到MVC开发模式,在MVC开发模式中,Servlet扮演着控制器的角色。其主要功能:参数获取,业务逻辑调用,以及页面转向。


Struts是基于MVC模式的一个web开发框架。对Servlet进行了封装。为什么要进行封转呢。主要是我们在Servlet进行页面转向时,页面都是写死了,直接转到了jsp。如果我们更换jsp名称,就需要修改代码,而且从表单传过来的数据都是字符串类型,我们还需要根据实际的需求进行类型转换。例如(年龄,int类型),每次都需要先转。基于这些种种原因,Struts对其进行了封转,提供了一种更为灵活的机制。 


下面我将从一个简单点的计算器实例,介绍struts1的环境配置,以及其重要的两个核心类。 


简单计算器实现思路:

1.提供一个输入界面,输入两个数字和运算符(+、-、*、/),提交后将运算结果显示出来,如果出现错误显示错误页面,在正确页面和错误页面需要显示出输入值、运算符和计算结果。 

2.发送计算请求,需要Action处理这个请求,并将计算结果返回。此外,发请求需要传送数据才能计算,所以需要一个ActionForm来进行数据传送。表单上传送过来的数据都是字符串的,ActionForm可以进行数据类型转换。 


步骤一:配置Struts环境

1.jar

拷贝此路径下的所有jar包,并放置在项目的WebRoot\WEB-INF\lib下

\Struts\struts-1.2.9-bin\lib下所有的jar

2.配置ActionServlet

找到Struts\struts-1.2.9-bin\webapps\struts-blank\WEB-INF\web.xml

将红框中的内容拷贝到项目的WebRoot\WEB-INF\web.xml

 

 

3.配置struts核心配置文件

拷贝Struts\struts-1.2.9-bin\webapps\struts-blank\WEB-INF下的struts-config.xml文件到WebRoot\WEB-INF\

 

步骤二:代码实现


1.新建input.jsp页面:提供输入界面,输入两个数字和运算符

<span style="font-family:Microsoft YaHei;"><strong><body>
	<h1>简易计算器</h1>
	<hr> 
	<form action="cal.action" method="post">
		<input type="text" name="value1">
		<select name="flag">
			<option value=http://www.mamicode.com/"+">+>

2.新建CalActionForm页面并继承Struts的ActionForm:ActionForm将页面上的数据封转到Action业务类。

<span style="font-family:Microsoft YaHei;"><strong>package com.blackfox.struts;

import org.apache.struts.action.ActionForm;
/**
 * ActionForm传送数据
 * @author 火云
 *
 */
@SuppressWarnings("serial")
public class CalActionForm extends ActionForm {
	
	private int value1; 	
	private String flag; 	
	private int value2;

	public int getValue1() {
		return value1;
	}

	public void setValue1(int value1) {
		this.value1 = value1;
	}

	public String getFlag() {
		return flag;
	}

	public void setFlag(String flag) {
		this.flag = flag;
	}

	public int getValue2() {
		return value2;
	}

	public void setValue2(int value2) {
		this.value2 = value2;
	} 
}</strong></span>

3.新建CalAction类并继承Struts的Action,并覆盖execute方法:Action处理每一次请求

<span style="font-family:Microsoft YaHei;"><strong>/**
 * Action处理请求,继承Struts的Action,并覆盖execute方法
 * @author 火云
 *
 */
public class CalAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//取出表单数据
		CalActionForm calform = (CalActionForm)form; //基于Struts对数据的封装传送,所以我们能强制转换
		
		int value1  = calform.getValue1(); 
		String flag = calform.getFlag();
		int value2 = calform.getValue2(); 
		
		//处理数据
		int result = 0; 
		
		try {
			if("+".equals(flag)){			
				result = value1+ value2;			
			}else if("-".equals(flag)){			
				 result = value1-value2;			
			}else if("*".equals(flag)){			
				result=value1*value2;			
			}else if ("/".equals(flag)){			
				result=value1/value2;			
			}
			//转向成功页面
			request.setAttribute("result", result);
			return mapping.findForward("success");
		} catch (Exception e) {			
			e.printStackTrace();
		}		
		//转向错误页面
		return mapping.findForward("error");
	}
	
}
</strong></span>


3.配置流程:Struts-config文件

 


4.success.jsp页面:

<span style="font-family:Microsoft YaHei;"><strong><body>
	${calform.value1 }
	${calform.flag }
	${calform.value2 }
	=
	${result }
</body></strong></span>


5.error.jsp页面

<span style="font-family:Microsoft YaHei;"><strong><body>
	${calform.value1 }
	${calform.flag }
	${calform.value2 }
	失败!
</body></strong></span>


总结:

以上只是通过一个简单的小例子来对struts1的初步学习。这只是学习的第一阶段,对它的理解还需要看在以后的学习中是否真正的用心,每一种框架都有通的一面,所以只要用心学,多思考,再接触新的框架的时候,任何问题也都会迎刃而解。 



【SSH学习笔记】—从配置Struts1环境到简单实例