struts2 测试错题解析

解析:$.parseJSON()方法是将字符串转换成Json类型数据,$.getJSON()方法是获取JSON数据,两者不用联合使用。

解析:

A:ActionContext接口没有getRequest()方法,要想获取request只能ActionContext.getContext().get("request");

B:ServletAtionContext接口就是调用原始ServletAPI

解析:在action控制器中可以使用EL表达式,前提是调用的属性在Action类中有该属性,并有get,set方法。

解析:实现Intereceptor接口必须重写三个方法:init(),destroy()和intercept(ActionInvocation invocation),并且返回值必须是String;

如果是继承AbstractInterceptor抽象类则只用重写intercept(ActionInvocation invocation)方法,返回值也必须是String。

解析:

A:日期格式:yyyy-MM-dd,MM必须大写

D:<s:textarea>标签生成的是<textarea>标签

解析:

C:ValueStack装取数据是先进后出,如果有两个同名属性,只会是上面的(后进的数据)覆盖下面的。

D:如果Action里的字段都是自己的会放在ValueStack中,如果Action里引用了其他类的对象则会放在StackContext中。

解析:在xml中配置编码<constant name="struts.i18n.encoding" value="UTF-8"/>

解析:Action类中有一个List,数据将会保存在ValueStack中,取出ValueStack中的值不用加#号,直接用属性名即可,取出List中的值可用用下标的方式也可以用get()方法。

解析:

A:Action中没有直接可用的request对象

B:ActionContext接口不能直接调用getSession()方法,而是先调用getContext()方法

D:没有ServletContext接口

解析:表示这一块没怎么听,我也不会。

解析:

在JSP页面用set标签定义的字段会保存在StackContext中,所以取值就会用到#号,而且它还是以数组的形式存放的,要想取到真正的内容就要遍历一遍,

所有A错了,A只能取到内存地址;%{}只是为了标识list不是一个字符串,而是一个字段或者说是一个变量,所以BD是对的,但是C也能输出正确结果。。。

原文地址:https://www.cnblogs.com/wuao/p/5906855.html