首页 > 代码库 > Struts2错题总结

Struts2错题总结

                                                         Struts总结

     struts 2是一个MVC框架,以WebWork框架的设计思想为核心,吸收了Struts 1的部分优点Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性。

1.以下关于jQuery说法错误的选项是(D )。

A.“$”为jQuery脚本库的默认全局变量名,即“$= jQuery

B$.ajax( )方法是jQuery提供的最底层的Ajax方法,其它如“$.get( )$.post( )$.getJSON( )”等都是在其基础上的再次封装

C$.ajax( )方法具有较强的灵活性,通过设置“type”属性可以指定请求方式,设置“dataType”属性可以指定服务器端返回的数据类型

D$.parseJSON( )方法用来返回JSON格式的数据,通常需要与$.getJSON( )方法联合使用

$.parseJSON( )解析JSON格式的数据(转换其它类型到JSON类型)

 

2. 下列选项中关于XMLHttpRequest对象的说法错误的是(BC )。(选两项)

 

AXMLHttpRequest对象是Ajax技术的核心,它的作用是可以发送异步请求到服务器端

 

Bstatus属性的作用可以返回当前请求的就绪状态,其常用值为:01234

 

CreadyState属性的作用可以返回当前请求的HTTP状态码,其常用值404表示找不到访问对象

 

D.当就绪状态是4且状态码是200时,方可处理服务器数据

答:readyState属性作用可以返回当前请求的就绪状态,其常用值为:0、1、2、3、4

 

XMLHttpRequest.readyState:

 

状态码 

 

0 - (未初始化)还没有调用send()方法 

 

1 - (载入)已调用send()方法,正在发送请求 

 

2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 

 

3 - (交互)正在解析响应内容 

 

4 - (完成)响应内容解析完成,可以在客户端调用了

XMLHttpRequest.status:

200-正确返回

404—找不到访问对象

3.在Struts 2框架中访问Servlet API对象描述错误的是(AB )

AServletActionContextActionContext都有getRequest()方法,都返回HttpServletRequest对象

BServletActionContextActionContext访问Servlet API时,都无需直接调用原始Servlet API

CAction可以实现特定的接口,由Struts 2框架向Action注入Servlet API对象,这种编程思想称为IoC

DActionContext类没有封装所有Servlet API的访问方法,所以有时也需要使用ServletActionContext

答:A项 ActionContext.getContext().get("REQUEST");  ServletActionContext.getRequest();

        B项ServletActionContext直接调用原始Servlet API

        C 项、D项正确

 

4.以下关于Struts 2的标签说法错误的是(AD 

 

A<s:date>用于格式化输出一个日期,它的format属性用于指定日期显示的格式,如:yyyy-mm-dd HH24:mi:ss,表示格式为:“年--日 时::秒”MM--->月   mm-->分钟

 

BStruts 2标签比JSTL标签功能更强大,数量也更多

 

C<s:property value="http://www.mamicode.com/username"/>的作用是在页面中访问Action中的getUsername()方法,并显示返回值

 

D<s:textarea>(文本域)可以在页面上生成一个<input type="text" />标签

 

5. 以下关于OGNLValueStack描述错误的是(CD )

 

A由于值栈存储在request中,所以值栈和request作用域的生命周期是相同的

 

B.使用OGNL访问对象属性时,会按照从顶部到底部的顺序查找

 

C.当ValueStack中存放多个对象时,下面对象的属性会覆盖上面对象中的同名属性(栈的特性是:先进后出,所以上面的属性会覆盖下面的

 

DStruts 2会将Action的实例保存在Stack Context中而非ValueStack中(Action的实例都存储在值栈(ValueStack)中)

 

6.下面是Struts 2StudentAction类的部分代码:

 

public class StudentAction extends ActionSupport {

 

private List<Student> students = new ArrayList<Student>();

 

    //省略了gettersetter等其他代码

 

}

 

已知students中保存了多个Student对象,下面代码能访问到students中第一个Student对象的name属性值的是( AD)。

 

A<s:property value="http://www.mamicode.com/students[0].name"/>

 

B<s:property value="http://www.mamicode.com/#Student.getName()"/>

 

C<s:property value="http://www.mamicode.com/#students[0].name"/>

 

D<s:property value="http://www.mamicode.com/students.get(0).name"/>

:对象都保存到ValueStack中,不需要#,访问Stack Context属性需要加#。

7.在页面中使用Struts 2URL标签构建一个URL,则能够正确构建超链接的选项是(CD

 

<s:url id="first" value="http://www.sohu.com"></s:url>

 

A<s:a href="http://www.mamicode.com/first">搜狐</s:a>

B<s:a href="http://www.mamicode.com/#first">搜狐</s:a>

C<s:a href="http://www.mamicode.com/%{first}">搜狐</s:a>

D<s:a href="http://www.mamicode.com/%{#first}">搜狐</s:a>

 

8.执行<s:set name="list" value="http://www.mamicode.com/{‘北京‘,‘天津‘,‘上海‘,‘重庆‘}"/>后,可以正确遍历该列表的选项是( BD

 

A<s:property value="http://www.mamicode.com/list"/>        

 

B<s:iterator value="http://www.mamicode.com/#list">

 

      <s:property/>

 

</s:iterator>

 

C<s:iterator value="http://www.mamicode.com/${list}">

 

     <s:property/>

 

</s:iterator>

 

D<s:iterator value="http://www.mamicode.com/%{#list}">

 

      <s:property/>

 

</s:iterator>

答:对于字符串类型的属性,如果要访问动态数据,必须使用%{...}这样的语法,否则将被直接看作字符串场常量。

     对于对象类型的属性,将直接作为OGNL表达式进行计算。如果需要对对象类型的属性制定字符串常量,则必须在

    这个字符串常量外加一对单引号或者使用%{‘constant string‘}这样的语法。

   例:

  <s:set name="list" value="http://www.mamicode.com/‘http://www.sohu.com‘">

  <s:property value="http://www.mamicode.com/#myurl"/>//显示http://www.sohu.com

   所以BD实现同样功能。

    

  

 

Struts2错题总结