基于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的访问路径,不至于总是在一个胡同里打转。