struts2小程序

struts2是一个实现了MVC设计模式的web框架,简化我们为web应用开发,值得一提的是之前有一个struts1,它俩存在很大的差别,基本可以认为是两个不同的框架,接口,实现方面都大不相同。下面介绍下struts2的环境搭建。


1.下载
在http://struts.apache.org下载struts-2.3.20-all.zip,解压。


2.新建项目
打来Eclipse,新建一个dynamic web project项目,命名为add。


3.导入开发包
进入struts-2.3.20\apps,解压struts2-blank.zip,进入找到WEB-INF,打开后进入lib文件夹,里面有很多.jar文件,这就是我们要使用的核心的struts2的开发包。全部复制,粘贴到项目中的webcontent/web-inf/lib下面。这里的struts-2.3.20\apps实际上是很多官方提供的struts2实例,我们可以参考并使用。


4.创建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>


其中的filter是核心,struts2使用的是filter来转发请求。


5.struts。xml
该文件放到src文件夹下,主要配置如何转发请求。
<?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="sum" class="com.nju.FirstAction" >
              <result name="positive">/positive.jsp</result>
              <result name="negative">/negative.jsp</result>
          </action>
      </package>
  </struts>


action:指使用Action类对一次请求的处理。只要来了一个请求,就会新建一个Action类的实例,执行Action的处理方法,返回结果页面。一个Action类可以出俩多个请求,配置                 action条目即可。
name:表明了这种处理的名字,在表单中会用到,指定这个表单请求由哪个action来处理;
class:指定了实现类是哪个,用的是全类名。
result:指定了action处理完请求之后,会呈现什么页面,这里可以动态选择,当然要根据action实现类来定,action当中有一个execute方法,会返回一个string,与哪个result                 name匹配就返回后面的页面。这样做的话有一个好处就是,页面使用的是逻辑名,程序中使用这个逻辑名,不用改变了,具体名与逻辑名的匹配写在struts。xml中。


6.创建action文件
它计算两个数的和。
package com.nju;
import com.opensymphony.xwork2.ActionSupport;


@SuppressWarnings("serial")
public class FirstAction extends ActionSupport {
    private int operand1;
    private int operand2;
    public String execute() throws Exception {
        if (getSum() >= 0)  // 如果代码数和是非负整数,跳到positive.jsp页面
        {
            return "positive";
        }
        else  // 如果代码数和是负整数,跳到negative.jsp页面
        {
            return "negative";
        }
    }
  
    public int getOperand1()    {
        return operand1;
    }
  
    public void setOperand1(int operand1)    {
        System.out.println(operand1);
          this.operand1 = operand1;
    }
  
    public int getOperand2()    {
        return operand2;
    }  
    public void setOperand2(int operand2)    {
        System.out.println(operand2);
        this.operand2 = operand2;
    }
    public int getSum()    {
        return operand1 + operand2;  // 计算两个整数的代码数和
    }
}


struts2规定,任何一个类只要是有
public String XXX(){
     
}这个方法就可以是一个Action,当然我们也可以继承ActionSupport类,这样可以使用父类的东西。
struts2根据execute返回的字符串与result匹配,决定返回什么页面。


7.创建页面
sum.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
 <%@ taglib prefix="s" uri="/struts-tags"%>
  
  <html>
      <head>
          <title>输入操作数</title>
      </head>
  
      <body>
           求代数和
          <br/>
          <s:form action="/add/sum">                
              <s:textfield name="operand1" label=" 操作数1"/>
              <s:textfield name="operand2"  label=" 操作数2" />        
              <s:submit value="代数和" />            
          </s:form>
      </body>
  </html>


positive.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  <%@ taglib prefix="s" uri="/struts-tags" %>
  
  <html>
    <head>
      <title>显示代数和</title>
    </head>
    
    <body>    
      代数和为非负整数<h1><s:property value="sum" /></h1>
    </body>
  </html> 


negative.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  <%@ taglib prefix="s" uri="/struts-tags" %>
  
  <html>
    <head>
      <title>显示代数和</title>
    </head>
    
    <body>
      代数和为负整数<h1><s:property value="sum" /></h1>
      
    </body>
  </html> 


8.项目目录:



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值