{LJ?Dragon}【注】Struts标签的三个好处

RELATED LINKS

0.UTF-8 有无BOM的区别

UTF-8 BOM

06.
几款网页数据抓取软件

SOFTWARE_INTRODUCE

1.修改记事本编码默认

CHANGE NOTEPAD (UTF-8)

07.EasyUEFI简介

EasyUEFI

2.CAD安装问题

CAD INSTALL PROBLEMS

08.
Windows Live Writer

WLW Install Faied

3.几款好用的播放器

Media PLayer

09.
相关简介

RELATED INTRODUCED

4.win8 右下角水印问题

WIN8.1 PROBLEMS 01

10.联想G40-30安装Win7

Lenovo G40-30 Install win7

5.其它

...................

LJ?Dragon

 

 

1.<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.

  1. <a
    href="${pageContext.request.contextPath}/RegUser.html?userid=LJDragon">注册</a><

2.

  1. <%
  2.   //这个可以用<bean:define>标签替代
  3.   request.setAttribute("xx","LJDragon");
  4. %>

链接

  1. <html:link
    action="/RegUser"
    paramId="username"
    paramName="xx"
    >注册</html:link>

通过读帮助文档来为<html:link>生成的超链接增加参数的另一种方式

  1. <%
  2.   Date x = new Date();
  3.   request.setAttribute("username",x);
  4. %>

(这里的脚本代码改成标签的方式来写,有哪些?好像只有<jsp:useBean>标准标签)

  1. <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最好不要有可读写的成员变量。(???structs2中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配置文件为jsp页面设置的逻辑名,这样可以实现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方法。

 

Reference

【1】原文 zhchzh1000:http://blog.csdn.net/zhchzh1000/article/details/4602478

 

 

STUCTS LABLE ‘S BENEFIT的更多相关文章

  1. ASP中Lable控件的定位问题

    问题:Lable控件的定位问题:找了好久都没找到可以将Lable控件定位的办法,网上说可以将修改position这个属性来实现定位,可是我始终没找到这个属性. (1)首先,在源代码中添加 style ...

  2. HTML5基础之textarea 和lable

    HTML基础:表单<form/>中文本域textarea 和lable <textarea rows="行数" cols="列数">文本 ...

  3. Html-Css标签lable中定义宽度需要其他的支持

    lable的标签如果定义了width,如果要使起生效,则需要定义display width: 130px; display: inline-block;

  4. UVa 11889 Benefit(数论)

    题目链接: 传送门 Benefit Time Limit: 5000MS     Memory Limit: 32768 KB Description Recently Yaghoub is play ...

  5. 全局修改Lable/Button字体

    本次版本需求要把原来的字体全改掉,由于项目中有的是代码创建的,有的是XIB中直接改的,一个一个改工作量太大,使用运行时可以很轻松的实现        首先,项目中大多数设置字体的控件有 Lable, ...

  6. lable自动适配大小

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  7. 设置lable文本内容的行间距

    NSMutableParagraphStyle *paragraphStyle =[ [NSMutableParagraphStyle alloc] init]; paragraphStyle.lin ...

  8. Kinetic使用注意点--lable

    new Lable(config) 参数: config:包含所有配置项的对象. { x: "横坐标", y: "纵坐标", width: "宽度&q ...

  9. 设置lable内容不上下居中

    转载自:http://dong-zsh.github.io/2015/10/14/%E8%AE%BE%E7%BD%AElable%E5%86%85%E5%AE%B9%E4%B8%8D%E4%B8%8A ...

随机推荐

  1. UIView下使用Animation控制动画

    转载自:http://blog.csdn.net/xunyn/article/details/8128031 动画效果是IOS界面重要的特色之一,其中CAAnimation是所有动画对象的抽象父类,作 ...

  2. 334. Increasing Triplet Subsequence My Submissions Question--Avota

    问题描述: Given an unsorted array return whether an increasing subsequence of length 3 exists or not in ...

  3. 验证视图状态MAC失败解决方案

    验证视图状态 mac 失败.如果此应用程序由网络场或群集承载 请确保 machinekey 配置指定了相同的 validationkey 和验证算法.不能在群集中使用 autogenerate. 总是 ...

  4. javascript获取div高度

    DOM的: 获得了div的高度值 = document.getElementById("目标id").offsetHeight;

  5. python中文字符串前加u

    我明明在编码前就加上了# -*- coding: UTF-8 -*-可是运行时还是出错了, # -*- coding: UTF-8 -*- 这句是告诉python程序中的文本是utf-8编码,让pyt ...

  6. ueditor的过滤、转义、格式丢失问题

    1. 过滤 http://www.cnblogs.com/Olive116/p/3464495.html 2. 转义 http://segmentfault.com/q/101000000048928 ...

  7. 定制linux中的Gtk theme<一>如何设置窗口按钮的多态效果

    GTK主题之个人理解: GTK 主题引擎(包含代码所需的图形元素) +  主题配置文件(gtkrc文件)+ 数据资源文件(如图片等)    三者所呈现给用户的视觉风格效果 GTK拥有一套大量的widg ...

  8. libcurl的封装,支持同步异步请求,支持多线程下载,支持https

    最近在做一个项目,需要用到http get post等 需求分析需要做到同步和异步,异步请求的返回以可选的回调通知的方式进行. 本人以Linux为例,一步一步的来实现. 配置并且编译libcurl我以 ...

  9. [BZOJ 1026] [SCOI 2009] Windy数 【数位DP】

    题目链接:BZOJ - 1026 题目分析 这道题是一道数位DP的基础题,对于完全不会数位DP的我来说也是难题.. 对于询问 [a,b] 的区间的答案,我们对询问进行差分,求 [0,b] - [0,a ...

  10. 使用单调队列优化的 O(nm) 多重背包算法

    我搜索了一下,找到了一篇很好的博客,讲的挺详细:链接. 解析 多重背包的最原始的状态转移方程: 令 c[i] = min(num[i], j / v[i]) f[i][j] = max(f[i-1][ ...