zoukankan      html  css  js  c++  java
  • 基于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的访问路径,不至于总是在一个胡同里打转。

  • 相关阅读:
    zend studio 的vim插件
    [转]mysql性能优化慢查询分析、优化索引和配置
    mysql日期函数整理
    系统进行多语言支持转换
    table xxxx is full 报警问题处理
    坚持的力量
    $_SERVER内容的意义
    smarty 注册函数使用初体验
    Mysql输入错误时取消输入
    js:
  • 原文地址:https://www.cnblogs.com/Believer/p/5354038.html
Copyright © 2011-2022 走看看