struts2搭建以及简单案例

首先配置struts

1,首先创建java web项目,然后倒入核心jar包在WEB-INF/lib目录下


这六个是jar包是基础,需要什么组件以后再添加,添加多了用不到会报错。

然后是配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
	<filter-name>struts2</filter-name>
	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	</filter-class>
</filter>

<filter-mapping>
	<filter-name>struts2</filter-name>
	<url-pattern>/*</url-pattern>

</filter-mapping>
</web-app>

2web.xml文件创建在WEB-INF目录下,右键该目录,选择文件,输入web.xml,完成创建,然后把上述内容输入进去。

3,创建并配置struts.xml文件。

struts.xml创建在src目录下。右键该目录,选择文件,输入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="default" namespace="/" extends="struts-default">
		<action name="add" class="action.Ch11_1_Action">
			<result name="+">/ch11_1_Positive.jsp</result>
			<result name="-">/ch11_1_Negative.jsp</result>
		</action>
	</package>
</struts>

<action><result>标签内容是我自己试验例子书写的。namespace="/"是空间地址。StrutsPrepareAndExecuteFilterStruts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Servlet不同,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的。

 

Action”类代替了“Servlet”,Action类可以是一个普通的类,其处理请求的方法也可以是一个普通方法(返回类型为String),该类在struts.xml中配置。

Struts2框架自动将请求参数的值注入给Action类中同名属性(借助于set方法),这样可以省略getParameter语句。

Action中的属性存储到请求范围内的特定属性(struts.valueStack),可通过EL表达式访问(调用get方法)。这样可以省略request.setAttribute语句。

Action中转发的输出页面在struts.xml中配置,这样可以省略forward语句。

配置完毕,struts就配置完了,然后就可以书写例子了。这里用教材上的加数求和例子。三个页面ch11_1_Input.jsp,ch11_1_Negative.jsp,ch11_1_Pogative.jsp三个view页面。都放在webRoot目录下

ch11_1_Input.jsp:输入加数页面.


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP 'ch11_1_Input.jsp' starting page</title>


</head>

<body>
	<form action="add" method="post">
		请输入两个数:<br>
		<br> 加数:<input name="x" /><br> 被加数:<input name="y">
		<br> <input type="submit" value="求和">
	</form>
</body>
</html>



ch11_1_Negative.jsp:返回代数和为负数的例子

<%@ page  pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    
    <title>My JSP 'ch11_1_Negative.jsp' starting page</title>
    
	

  </head>
  
  <body>
     代数和为负数:<s:property value="sum"/>
  </body>
</html>

ch11_1_Pogative.jsp:返回代数和为非负数的例子。


<%@ page  pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    
    <title>My JSP 'ch11_1_Positive.jsp' starting page</title>
   

  </head>
  
  <body>
  代数和为非负数:<s:property value="sum"/>
  </body>
</html>

然后写action。我们在src目录下创建package。名字为action。并将Ch11_1_Action.java创建并输入控制运算的内容。(本文件创建时候,C是大写)内容为属性值,getset方法,以及执行运算的函数execute() 。如此一来,所用工作结束,然后开启tomcat并配置服务,在浏览器输入地址,就可以了。

package action;

public class Ch11_1_Action {
	private int x;
	private int y;
	private int sum;

	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public int getSum() {
		return sum;
	}

	public void setSum(int sum) {
		this.sum = sum;
	}

	public String execute() {
		sum = x + y;
		if (sum >= 0) {
			return "+";
		} else {
			return "-";
		}
	}
}
最后,在浏览器运行下就可以了。(配置tomcat以及如何书写路径,都是常规web项目技能,不再赘述)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值