struts面试题Word下载.docx
《struts面试题Word下载.docx》由会员分享,可在线阅读,更多相关《struts面试题Word下载.docx(5页珍藏版)》请在冰豆网上搜索。
7.ActionForward对象指向的JSP组件生成动态页面,返回给客户。
对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionError的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含客户提交表单的JSP组件。
在这种情况下,不会再创建Action对象并调用Action的execute方法。
3Struts框架的数据验证可分为几种类型?
表单验证(由ActionFormBean处理):
如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误
业务逻辑验证(由Action处理):
如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。
4简述FormBean的表单验证流程。
1、当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionFormBean中。
2、接下来Struts框架会调用ActionFormBean的validate()方法进行表单验证。
3、如果validate()方法返回的ActionErrors对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。
4、如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过<
html:
errors>
标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。
5在struts配置文件中action元素包含哪些属性和子元素?
path属性:
指定请求访问Action的路径
type属性:
指定Action的完整类名
name属性:
指定需要传递给Action的ActionFormBean
scope属性:
指定ActionFormBean的存放范围
validate属性:
指定是否执行表单验证
input属性:
指定当表单验证失败时的转发路径。
<
action>
元素还包含一个<
forward>
子元素,它定义了一个请求转发路径。
6.简单叙述ActionFormBean的作用
1、ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。
2、Struts框架利用ActionFormBean来进行View组件和Controller组件之间表单数据的传递。
3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionFormBean中,把它传递给Controller组件,Controller组件可以对ActionFormBean中的数据进行修改JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。
7.叙述ActionForm执行步骤
(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射
(2)根据name属性,查找formbean的配置信息
(3)检查Action的formbean的使用范围,确定在此范围下,是否已经有此formbean的实例。
(4)假如当前范围下,已经存在了此formbean的实例,而是对当前请求来说,是同一种类型的话,那么就重用。
(5)否则,就重新构建一个formbean的实例
(6)formbean的reset()方法备调用
(7)调用对应的setter方法,对状态属性赋值
(8)如果validatede的属性被设置为true,那么就调用formbean的validate()方法。
(9)如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行。
8.在下面的标签中哪些是struts标签
A、<
form>
B、<
text>
C、<
D、<
message>
9、FormBean的作用
答:
FormBean是一种JAVABean,除了具有JAVABean的常规方法,还包含一些特殊方法,用于验证表单数据,以及将其属性重新设置为默认值。
FormBean用来进行View组件和Controller组件之间表单数据的传递。
View组件接收到用户输入的表单数据,保存在FormBean中,把它传递给Controller组件,Controller组件可以对FormBean中的数据进行修改。
10、Forward与Global-Forward的区别
Forward是根据Actionreturn的值找到对应的JSP页。
当多个Action共同return同一个值时,可将这个Forward元素写在Global-Forward中。
11.问题:
在Struts应用的视图中包含哪些组件?
(A)JSP
(B)Servlet
(C)ActionServlet
(D)Action
(E)代表业务逻辑或业务数据的JavaBean
(F)EJB
(G)客户化标签
12问题:
在Struts应用的控制器中包含哪些组件?
(E)代表业务逻辑或业务数据的JavaBean
13.在struts配置文件中action元素包含哪些属性和子元素?
14.问题:
在Struts应用的模型中包含哪些组件?
15.问题:
struts框架中,关于FormBean,下列说法正确的是:
AFormBean是一种数据bean,主要用来封装表单提交上来的数据,并把这些数据传递给Action
B在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证
C用户每次提交表单,都会产生一个新的FormBean实例
D动态FormBean不能进行验证操作
16.问题:
struts框架中,在一个Action的配置信息中,name属性指的是:
A当前action实例的名字
B当前action所在的类的名字
C该Action中调用的FormBean的实例的名字
D该Action中调用的FormBean的类的所在包名
17.问题:
关于struts项目中的类与MVC模式的对应关系,说法错误的是?
AJsp文件实现视图View的功能
BActionServlet这一个类是整个struts项目的控制器
CActionForm、Action都属于Model部分
D一个struts项目只能有一个Servlet
18、问题:
以下哪些说法是正确的?
选项:
(A)每个HTTP请求对应一个单独的ActionServlet实例
(B)对于每个请求访问HelloAction的HTTP请求,Struts框架会创建一个单独的HelloAction实例。
(C)每个子应用对应一个单独的RequestProcessor实例
(D)每个子应用对应一个单独的web.xml文件
19ActionFormBean对象是由谁创建的?
(A)<
标签处理类
(B)ActionServlet
(C)RequestProcessor
20、struts框架,错误的是?
AStruts中无法完成上传功能
BStruts框架基于MVC模式
CStruts框架容易引起流程复杂、结构不清晰等问题
DStruts可以有效地降低项目的类文件数目
21、问题:
以下代码定义了一个变量,如何输出这个变量的值?
bean:
defineid="
stringBean"
value=“helloWorld“/>
(A)<
writename=“stringBean"
/>
(B)<
writename=“helloWorld"
(C)<
%=stringBean%>
(D)<
%StringmyBean=(String)pageContext.getAttribute(“stringBean”,PageContext.PAGE_SCOPE);
%>
<
%=myBean%>
22、问题:
把静态文本放在ResourceBundle中,而不是直接在JSP文件中包含这些静态文本,有什么优点?
提高可维护性提高可重用性支持国际化
23.问题:
CActionForm、Action都属