搜档网
当前位置:搜档网 › struts2综合试卷

struts2综合试卷

struts2综合试卷
struts2综合试卷

Struts2学习增强练习

课程名称: Struts2学习增强练习考试时间xx分钟(闭卷■)

不定项选择题

1.开发struts2 web项目,需要导入哪些jar包

A 必须导入struts2 解压lib下所有jar包

B 只需要导入struts2解压app/struts2_blank.war中的jar包就可以

C 如果进行注解开发,导入struts2解压app/struts2_blank.war中的jar包就可以

D 如果进行注解开发,还必须导入convention的插件jar包

2.下面关于struts2 MVC说法正确的是?

A.Struts2 是一个基于MVC模式的web层框架

B.Struts2中核心控制器是ActionServlet

C.Struts2中模型是Action

D.Struts2中控制器是Filter 和Action

E.Struts2的视图必须用JSP

3.关于Struts2 Action说法下面正确的是

A.用户编写的Action可以是POJO类

B.用户编写的Action可以实现Action接口

C.用户编写的Action 可以继承ActionSupport

D.Action中必须提供execute方法

E.Action提供的业务方法必须public修饰,String类型返回值,无参数的

4.如果客户端请求路径http://localhost:8080/struts2_exec/user_add.action 要执行UserAction类中

的add方法,下面的配置哪些是正确的

A.

B.

C.

D.

E.

5.下面关于Struts2中result type说法正确的是?

A.如果要将请求从一个Action转发给另一个Action 可以使用chain 结果集

B.如果要将请求转发给一个JSP,可以使用dispatcher 结果集

C.如果要将请求从一个Action重定向到另一个Action 可以使用redirectAction结果集

D.如果要将请求从一个Action重定向到JSP,可以使用redirect结果集

E.进行文件下载时可以使用stream结果集

6.如果客户端提交请求路径为http://localhost:8080/struts2/hello.action?name=”itcast”, 下面在

Action中要接收name请求参数,哪个写法是正确的?

A.public class HelloAction {

private String name;

public void setName(String name){

https://www.sodocs.net/doc/ce14707600.html, = name;

}

}

B.public class HelloAction {

private User user ;

public void setUser(User user){

https://www.sodocs.net/doc/ce14707600.html,er = user;

}

}

public class User {

private String name;

public void setName(String name){

https://www.sodocs.net/doc/ce14707600.html, = name;

}

}

C.public class HelloAction implements ModelDriven{

private User user ;

public User getModel(){

return https://www.sodocs.net/doc/ce14707600.html,er;

}

}

public class User {

private String name;

public void setName(String name){

https://www.sodocs.net/doc/ce14707600.html, = name;

}

}

D.public class HelloAction implements ModelDriven{

private User user = new User() ;

public User getModel(){

return https://www.sodocs.net/doc/ce14707600.html,er;

}

}

public class User {

private String name;

public void setName(String name){

https://www.sodocs.net/doc/ce14707600.html, = name;

}

}

7.关于自定义类型转换器下面说法正确的是?

A.向Action封装请求参数,是由ParametersInterceptor完成的

B.进行封装参数时,必须要自定义类型转换器

C.自定义类型转换器,如果继承DefaultTypeConverter , 覆盖convertValue方法时,只需要实

现String向目标类型的转换

D.自定义类型转换器后需要注册,可以在Action所在路径编写

Action类名-conversion.properties ,配置Action中属性名= 类型转换器

E.自定义类型转换器也可以全局注册,在src下创建xwork-conversion.properties ,配置

目标类型= 转换器

F. 如果类型转换出错后,会跳转到INPUT对应视图,可以通过 显示错误信息

8.如果需要对Action封装请求参数,进行校验下面哪些说法正确

A.可以在Action中添加validate方法完成校验,Action可以是POJO类

B.可以在Action所在包编写Action类名-validation.xml 对Action中所有业务方法进行校验

C.如果要对Action中某个指定的业务方法进行校验,可以在Action所在包,编写

Action类名-方法名-validation.xml

D.在Action中手工校验失败后,通过addFieldError设置错误信息,但Action中是无法读取国际

化文件的

9.下面关于Struts2 中Action 中设置信息说法正确的是

A.在开发中Action 将一个文本信息传递给JSP 显示,通常可以使用addActionError、

addActionMessage 、addFieldError 三个方法,此时Action必须继承ActionSupport

B.addFieldError 主要存放字段错误信息,页面通过 显示

C.addActionError 主要存放Action错误信息页面通过显示

D.addActionMessage 可以存放Action普通信息,页面通过 显示

10.关于struts2 国际化信息文件下面哪些说法是正确的?

A.国际化信息文件,必须放到src根目录,不能放到package中,放到src根目录中国际化信息

文件不需要配置,就可以在所有Action中使用

B.可以在Action所在包,编写Action类名.properties ,无需配置就可对当前Action 生效

C.可以在Action 所在包,创建package.properties ,无需配置就可对当前包所有Action生效

D.国际化信息文件在任何package中,都可以通过在struts2.xml 对国际化信息文件进行配置

struts.custom.i18n.resources ,使其对所有Action 生效

11.关于struts2 拦截器说法正确的是

A.Struts2内部使用了很多内置拦截器,用于在Action执行前后加入某些操作

B.访问每个Action 默认都会执行defaultStack 中所有拦截器

C.如果在元素中指定 那么默认defaultStack 就不会得到执行

D.自定义拦截器可以实现很多功能,比如权限控制,性能监控

E.Struts2 中拦截器实现责任链模式

12.关于值栈ValueStack 下面哪些说法正确

A.ValueStack值栈对象的生命周期就是request生命周期,request对象销毁后值栈数据将不

存在

B.获得值栈对象引用可以通过两种方法

第一种ServletActionContext.getRequest().getAttribute("struts.valueStack");

第二种ActionContext.getContext().getValueStack();

C.值栈中包含两个部分,一个CompoundRoot 和一个OgnlContext , CompoundRoot是一个

ArrayList 结构,OgnlContext 是一个Map 结构

D.OgnlContext 对内置了很多常用web对象的对应Map结构,通过parameters 、request、

session、application、attr 对应map对象,可以间接操作Servlet API

E.每次请求Action ,Action对象本身都会被push到值栈的root 中

13.下面关于向值栈存放数据说法正确的是?

A.在Action建立成员变量,并提供get方法,该数据就会随Action 会被自动压入值栈

B.可以通过调用valueStack 提供push 方法将一个对象压入值栈的root中

C.可以调用valueStack的set (key,Object) 方法将一个对象,存入值栈OgnlContext中

D.可以调用valueStack.getCompoundRoot().add(object) 方法,将数据存入值栈root中

E.可以调用valueStack.getOgnlContext().put(key,object) 方法将数据存入值栈OgnlContext

14.如果Action 如下定义

public class HelloAction {

private String name =”itcast”;

public String getName(){

return https://www.sodocs.net/doc/ce14707600.html,;

}

}

在页面要取得name的值,下面哪些写法是正确的?

A.

B.

C.

D.

E.${name}

15.阅读下面代码

public class UserAction {

private List users;

public List getUsers(){

return https://www.sodocs.net/doc/ce14707600.html,ers;

}

public String execute(){

users = …. 从数据库查询出所有用户

}

}

public class User {

private String name;

private String city ;

// 提供getter方法

}

要在结果JSP中对users数据进行遍历显示,下面哪些写法正确A.

B.

C.

D.

相关主题