一、 选择题
1.在控制器类中一般需要添加相应属性的___A____和_____C___。
A.setter方法 B.as方法
C.getter方法 D.is方法
2.业务控制器需要在_____B____配置文件中进行配置。
A.l B.l
C.l D.l
3.不属于Struts 2表单标签库的是______D ____。
A.<s: textfield > B.<s: textarea >
C.<s: submit > D.<select>
4. 在JSP页面中可以通过Struts 2提供的___D______标签来输出国际化信息。
A.<s: input > B.<s: texts >
C.<s: submit > D.<s:text>
5. 资源文件的后缀名为______D___。
A.txt B.doc C.property D. properties
6. 以下关于struts的描述中,不正确的是(D)
A. struts 是一个基于JAVA EE的MVC
B. struts2的框架配置文件是struts-configxml
C. struts2的控制组建核心包括核心控制和业务控制器
D. 在struts中解决中文乱码可以通过修改ding的值为GBK来实现
7. 在l中。假如在一个package中没有配置namespace,那么在其中配置一个Action名字叫做login,它的result是这样配置的<result>/login.jsp</result>,已知在此配置文
件中还有另一个namespace为user的package其中也有一个Action名字为login,它的result是这样配置的<result>/loginUser.jsp</result>那么在以下什么情况下将能访问到login.jsp ________A______
A.在根路径后输入/login
B.在根路径后输入/user/login
C.在根路径后输入/login/user
D.在根路径后输入/abc/login
8. 不同的线程在调用Action时创建几个Action实例。( C)
A.1个
B.2个
C.每个线程创建1个。
D.jsp页面输出的三种方式可以自定义配置。
二、 简答题
1、 简述什么是MVC?
答:MVC即模型-视图-控制器.MVC是一种设计模式,它强制把应用程序的输入处理和输出分开.视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接受用户的输入,但是它并不进行任何实际的业务处理。模型是应用程序的主体部分。模型表示业务数据和业务逻辑。控制器接受用户的输入并调用模型和视图去完成用户的需求
2、 用自己的话简要阐述struts2的框架由哪几部分组成,struts2的执行流程是怎样的?
答:Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务在控制器Action和用户实现的企业业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程与WebWork框架基本相同,
所以说Struts 2是WebWork的升级版本。基本简要流程如下:1、客户端浏览器发出HTTP请求。2、根据l配置,该请求被FilterDispatcher接收。3、根据l配置,到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。5、Action执行完毕,根据l中的配置到对应的返回结果result,并跳转到相应页面。6、返回HTTP响应到客户端浏览器。
3、 struts2的web里需要配置什么?
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、 输出值的strtus标签、循环的struts标签、判断的strtuts标签分别是什么?
<s:property>、<s:iterator>、<s:if></s:if> <s:else></s:else><s:elseif></s:elseif>
5、 要调用struts标签需要导入什么?
<%@taglib uri="/struts-tags" prefix="s" %>
三、 编程题
1、给出以下Action的Struts.XML配置文件描述 (注:请求为Test/Hello.action,返回页面为WebRoot根目录下的success.jsp)
urcompany.action;
public class HelloWorldAction
{
private String message;
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
ssage = message;
}
public String onPlay() throws Exception
{
System.out.Message());
return "success";
}
public String execute() throws Exception
{
System.out.Message());
return "success";
}
}
参考答案<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="Hello" class="urcompany.action.HelloWorldAction">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
2、在Action类UserAction中存在对象属性User user,其中User类中存在String userName属性,UserAction的部分代码如下所示,请给出使用OGNL语言从valueStack,Session,Request三种作用域中获得userName属性对应value的代码
public class UserAction{
private User user;
//getter,setter方法略
public String execute() { Context().getSession().put(“userName”,UserName());
}
}
参考答案:从valueStack取值:<s:property value="user.userName"/>
从Session取值:<s:property value="#session.userName"/>
从Request取值:<s:property value="#request.user.userName"/>
3、请编写一个,该可以获得用户输入的用户名这个数据,业务逻辑为逐个判断用户名中是否包含“你”,“我”,“他”三个数据,如果包含则直接返回输入页面,如果不包含则运行至PersonAction。(除代码外,要给出和Action的配置文件)
提示:判断一个字符串是否包含指定的字符串,可以使用字符串对象的contains方法。
参考答案:l配置文件主要内容:
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="personIcpt" class="st.icpt.PersonInterceptor"></interceptor>
</interceptors>
<default-interceptor-ref name="personIcpt"></default-interceptor-ref>
<action name="person" class="st.action.PersonAction">
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论