<html:link>标签的三个好处:
使用<html:link action=“/action”/>不用关心web应用程序的路径和ActionServlet的映射路径。
可以自动附加jsessionid参数进行url重写。
可以对参数信息进行url编码。 备注: <c:url>标准标签也有<html:link>标签的后两个作用。
实验步骤:
把ActionServlet的映射路径由*.do改为*.html,这时候需要修改前面案例中的jsp页面中的超链接,由这个错误引出<html:link>标签的讲解。
启动一个新浏览器访问第一个Action,查看<html:link>生成的超链接地址,刷新后再查看这个超链接地址,比较差异说明<html:link>标签的url重写功能。
在<html:link>的action属性值的路径后中直接加参数,但是不能对其中的中文字符进行url编码。
使用paramID和paramName等属性设置一个参数,可以完成中文参数的url编码。
使用name和property属性来设置多个参数。
演示完<html:link action=“/action”/>标签后,记住把ActionServlet的映射路径改回为*.do,以后*.html与后面讲解的普通html页面打架。
为了体现<html:link>标签的url编码作用,可以用如下两段代码对比一下:
1: <a href="${pageContext.request.contextPath}/RegUser.html?userid=张孝祥">注册</a><br>
2: <%
request.setAttribute(“xx”,“张孝祥”);//这个可以用<bean:define>标签替代
%>
<html:link action="/RegUser" paramId="username" paramName="xx" >注册</html:link>
通过读帮助文档来为<html:link>生成的超链接增加参数的另一种方式
<%
Date x = new Date();
request.setAttribute("username",x);
%> (这里的脚本代码改成标签的方式来写,有哪些?好像只有<jsp:useBean>标准标签)
<html:link action="/regUser" paramId="username" paramName="username" paramProperty="time">
2.全局forward与<logic:forward>标签
全局forward的配置与应用
增加一个全局forward配置,让其path属性指向index.jsp页面,说明action没有找到局部forward时,就会使用全局的forward,只要将第一个action内部的forward名称改为这个全局的forward,就可以看到运行效果了。
在首页中使用<logic:forward>标签
在首页中使用<logic:redirect>标签
注意:由全局forward加在struts-config配置文件的最前面,引出了<struts-config>中的子元素是有顺序的附带讲解。
对于注册这个url地址,每次都要在浏览器中输入,很麻烦!先在index.jsp页面中使用<logic:forward>标签转发过去,这时候需要配置全局forward,接着用<logic:redirect>标签重定向过去,这时候不需要配置全局forward。
3.本阶段应注意的要点:
Action是单实例和线程不安全的,在Action最好不要有可读写的成员变量。
struts-config.xml文件中的<action>元素的path属性中没有.do,原因是映射到struts的路径可以不是.do嘛!
struts-config.xml文件中的<action>元素的path属性必须以“/”开头,forward中配置的jsp文件路径也必须以“/”开头,总之,在web应用程序中记住路径总是以“/”开头,就错不了!
4.阶段目标与面试相关问题
(1)什么是MVC模式?
(2)说说你对struts的理解?
(3)独立用struts做一个注册程序(这一阶段只要做出基本骨架就行)
(4)怎样防止struts配置文件的膨胀?
(5)说说软件开发的流程
(6)说说你在struts项目中使用的是什么标签库?
(7)能区分ActionMapping与Action的区别吗?
(8)配置文件中的action元素中有哪几个属性必须设置
Struts框架查找出一个xx.do路径对应的Action.execute方法的线索。
答案:第1题的答案: MVC是module、view、controller的简写,module代表数据、view代表视图、controller代表控制器,控制器接收和处理请求,产生数据,然后选择视图显示数据。MVC的好处在于将处理业务的控制逻辑代码与显示视图的代码进行了分离,便于维护。如果有可能,最后最好是再画一个图来描述下。
第2题的答案:从actionservlet->到action开始讲,然后再是formbean,然后再是actionforward,最后是一些表现层的东东。
Struts是一个遵循MVC模式的WEB层框架, 说白了,它就是一个大大的Servlet. 这个Servlet 的名字叫ActionServlet.在web.xml 文件中把某一组请求映射给这个Servlet,通常使用(*.do的形式),也就是映射给了struts框架 .当这个ActionServlet接收请求以后,它将把这个请求交给一个Action处理,不同的请求交给不同的Action处理,一个请求路径到底对应哪个Action,这是在struts-config.xml中配置的. struts-config.xml 的名称和路径可以在ActionServlet 的参数中进行配置,并且可以配置成多个文件,以逗号分隔,这有很大好处,可以防止配置文件的膨胀。
ActionServlet把请求交给Action之前,会把请求参数封装成一个formbean,当formbean校验有问题时,就返回到错误提示的页面,当没问题时,才传递给Action去处理。
Action处理后返回的结果视图用一个Actionforward对象表示,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件j为sp页面设置的逻辑名,这样可以实现action程序代码与返回的jsp页面名称的解耦。
此外,Struts中提供了国际化支持和一些非常方便的标签,使得一些页面开发任务得到了简化。
第4题答案:查看ActionServlet类的帮助文档,可以看到其配置文件可以是逗号分隔的多个文件。看struts帮助文档中的controller component这一节,可以看到struts配置文件中可以使用*(wildcards)通配符。
第6题的答案:
我主要用jstl标签,有时候也用一些struts自己的标签,为什么呢?因为jstl是标准,更通用,我形成了用jstl标签库的习惯,但struts标签是紧密与struts框架紧密绑定在一起的,它能充分利用struts的特性,有时候可以为我们带来方便,例如,上面的程序不用<html:link>而是直接写或用jstl标签,你就感觉到这一点了。这样的标签在JSTL中没有相对应的标签可用。
第7题的部分答案:一个ActionMapping对象对应struts-config.xml文件中的一个<action>元素的配置信息,读ActionMapping类的API帮助文档,通过各个setter/getter方法,即可了解<action>元素的各个属性的意义。例如,通过帮助文档即可知道<action>元素的unknown属性的作用,设置默认的Action。查看ActionMapping的方法列表和配置属性的对应关系,并在程序中打印出相应的配置信息,从而透彻地了解ActionMapping的功能。
第9题:xx.do--><action>元素的path属性-->action元素的type属性-->Action的Java类-->exectue方法。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhchzh1000/archive/2009/09/27/4602478.aspx
分享到:
相关推荐
Nested Tags库是其他三个标签库的扩展,它允许标签之间的嵌套,提供更加复杂的结构。这对于处理复杂的数据模型和视图渲染特别有用。 5. **Tiles Tags**: Tiles Tags库是用于创建可重用的页面组件,实现页面布局...
在Struts2中,有三个常用的标签,它们极大地简化了开发者在视图层的工作,提高了代码的可读性和可维护性。 1. `s:textfield` 标签: 这个标签用于创建HTML输入字段,通常用于用户输入数据。它与Action类中的属性相...
下面将对前三个标签库中的标签进行详细的介绍。 Bean Tags Bean Tags 是 Struts 中最基本的标签库,包含的标签可以用来创建 bean、访问 bean 和访问 bean 的属性。同时提供了依据 cookies、headers 和 parameters ...
三、使用Struts标签 使用Struts标签时,首先需要在JSP页面中引入相应的标签库。例如,对于Struts2,要在页面中使用标签,需添加以下导入: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ``` 然后,可以使用...
Struts标签是Apache Struts框架中的一个重要组成部分,它提供了一种简化JSP页面开发的方式,使得开发者能够更方便地处理视图层与控制层之间的交互。本文将详细讲解Struts标签的使用及其常见HTML标签库,并指导如何在...
这个“Struts标签库.chm”文件很可能是官方或第三方编写的帮助文档,包含了关于如何使用Struts标签的详细信息。在本文中,我们将深入探讨Struts标签库的核心概念、优点以及如何在实际项目中应用它们。 Struts标签库...
例如:, 'Blue', 'Green'}" />,该标签将生成一个名为“favoriteColor”的列表框控件,并显示三个选项:红色、蓝色和绿色。 动态列表框标签: 动态列表框标签用于生成动态列表框控件。例如:,该标签将生成一个名...
然而,有时候我们可能需要根据项目需求定制特定的功能,比如这里的"自定义标签代替Struts标签实现分页"。下面将详细阐述这个主题。 一、自定义标签的原理 自定义标签是JavaServer Pages (JSP) 技术的一个强大特性,...
总的来说,Struts标签库是Struts框架的重要组成部分,它为Java Web开发提供了强大的视图层支持,简化了JSP页面的编写,提高了开发效率。理解和熟练运用这些标签,将有助于提升你在Struts项目中的开发能力。
本篇将深入探讨Struts标签在页面跳转和数据库操作中的应用。 一、Struts标签 1. Radio(单选按钮):Struts提供了`<html:radio>`标签来创建单选按钮组,通常用于让用户在多个选项中选择一项。在JSP页面中,这些...
### Struts标签库详解 #### 引言 Struts,作为Apache Jakarta的知名开源项目,致力于为基于Java的Web应用程序构建提供一个强大的框架。其核心优势在于提供了丰富的标签库,这些标签按照不同的功能和使用场景被划分...
Struts1.2标签库很好地体现了MVC(Model-View-Controller)模式,其中模型由Action和ActionForm对象表示,视图由JSP页面和Struts标签组成,控制器则由Struts框架本身处理,负责转发请求和调用相应的Action。...
2. 编写标签处理类(Tag Class):这个类负责处理标签的逻辑,它继承自`org.apache.struts2.views.jsp.ui.TagSupport`或其子类,并重写相关方法。 3. 编写标签支持类(Tag Extra Info Class, TEI):非必需,但可以...
三、常用Struts2标签用法 1. `s:action`: 这个标签用于执行一个特定的Action,例如: ```jsp ``` 其中,`name`属性指定了Action的名称,`executeResult`表示是否执行结果。 2. `s:form`: 创建表单并绑定到...
2. 标签语法:每个Struts标签都有特定的属性,如name、value、label等,这些属性通常与Action上下文中的值绑定。 3. 数据绑定:Struts标签能自动与Action中的属性进行数据绑定,如`<s:textfield name="username"/>`...
Struts2 标签库可以分为三大类:UI 标签、非 UI 标签和 Ajax 标签。 UI 标签 UI 标签主要用于生成 HTML 元素标签,UI 标签又可分为表单标签和非表单标签。UI 标签用于生成 HTML 元素标签,例如生成文本框、下拉框...
学习这三个标签库对于理解和掌握Struts框架至关重要。通过实践这些案例,开发者能够更好地理解Struts如何处理用户交互,如何将数据绑定到模型,以及如何在页面间进行控制流的管理。这将进一步提升开发者在Java Web...
Struts2.0是Java Web开发中非常流行的一个MVC框架,它的标签库极大地简化了视图层的开发,使得开发者能够更专注于业务逻辑。在本文中,我们将深入探讨Struts2.0标签的使用及其源码分析。 一、Struts2.0标签概述 ...