基于Struts分层web框架,研究传值问题

struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。他可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程,使用Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。

一、新建WEB项目struts_text3,右键点击项目,选择MyEclipse—Add Struts Capabilities,选择Struts 2.1,这一步完成之后,项目会有三个变化,如下图

二、开始写struts部分代码

1.首先要创建一个Action

步骤:点击src下的包--->右键——>class——>取名Student——>点击Browse——>继承ActionSupport。打开Student后鼠标右键——>source——> @Override/Implement Method——>重写execute()方法

package entity;

import com.opensymphony.xwork2.ActionSupport;

public class Student extends ActionSupport {
    
      private String name;             //name属性,下面是其getter和setter方法
      public String getName() {
          return name;
      }
      public void setName(String name) {
          this.name = name;
      }
      
      @Override
        public String execute() throws Exception {
            if(true){
            return "success";
            }
            else
                return "error";
        }
}

2.配置struts.xml文件,主要注意action的name,class相对应的名字,以及result 的执行结果(name *)。

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>
    
<package name="default" extends="struts-default">
        <action name="bean" class="entity.Student">        
           <result name="success">/bean.jsp</result>            
           <result name="error">/error.jsp</result>
        </action>

</package>

</struts>    

3. 编辑首页 index.jsp,这里的action必须要与structs.xml中的name一致,否则action 将找不到对应的对象,报错。当点击按钮“点击”时,即可跳转到客户想要的界面。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  
  <body>
    <form action="bean.action" method="post">
        <input type="submit" value="进入"/><br>
    </form>
  </body>
</html>

4. 编辑bean.jsp,显示三种传值方法的主要界面;由此可知,赋值方法不一,但是万变不离其宗,只要不要漏掉重要的属性:value,即可传值成功。

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
     <head>
     <title>bean标签</title>
     </head>
     <body>
           <s:bean name="entity.Student" id="stu">
               在bean标签内部可以直接输出:<br>
               <s:param name="name">洋洋</s:param>
               (1)第一种赋值方式:
               <s:property value="name"/><br>
               (2)第二种赋值方式:
             <!-- 该方法为参数赋值字符串必须加引号 -->
               <s:param name="name" value="'洋洋'"></s:param>
               <s:property value="name"/>
           </s:bean>
           <br>
           在bean标签外部利用id取值:
           <s:property value="#stu.name"/>
     </body>
</html>

三、运行,调试

1. 部署项目在tomcat下,在地址栏输入将要运行的项目struts,此时显示的结果只有“进入”一个按钮,是预想的效果。

 2. 单击 “进入” 按钮;从地址栏中可以看到 tomcat服务器访问的是action,以及赋值成功。

 

 四、总结,体会

1. 使用 struts技术简单赋值,由于对该标签不是很熟悉,导致在写代码时经常犯低级错误,对于它的很多常用标签运用生疏,前怕狼后怕虎。

2.总是把这些很简单的问题复杂化,缺少磨炼的机会,java基础薄弱。

3.对于该标签的关键点把握不住,需要多次实践才能体会其中的奥妙。

4.使用 struts 需要掌握它的基本属性,以及深刻体会其工作原理才能搞清楚action的访问路径,不至于总是在一个胡同里打转。

 

posted @ 2016-04-05 10:20  任心荒芜  阅读(207)  评论(0编辑  收藏  举报