当前位置:首页 > 技术综合面试题目(含参考答案)
5/38
9. ActionFrom中对于错误消息的存取是如何存取的,页面上面是如何显示ActionFrom
中存放的出错消息
通过ActionForm中的validate方法来进行验证的,并通过ActionErrors存取错误的消息。validate()方法返回ActionErrors对象。
具体实现为:ActionErrors errors = new ActionErrors();
errors.add(key,new ActionMessage(“消息”,false));
false下显示消息中的信息,默认为true,在true情况下,他会根据消息的内容到资源文件中找相应的值显示出来。
如果errors不为空的情况下, ActionServlet就不会继续进行接下来的工作,而是返回structs-config.xml所设定的位置,并跳转到input属性所设定的位置。
在页面上通过
10. 普通的Action对于消息的存取是如何实现的,页面上面是如何显示Action中存放的
消息
通过ActionMessages存取消息的。
具体的实现为:ActionMessages messages=new ActionMessages();
messages.add(key,new ActionMessage(“消息”,false)); this.saveMessages(request,messages);、
false下显示消息中的信息,默认为true,在true情况下,他会根据消息的内容到资源文件中找相应的值显示出来。
再页面上先通过
一种可以通过EL显示: ${var}
Action对于消息的存取是通过ActionMessages来实现的,ActionMessages以一个HashMap存储ActionMessage.Map中的key是一个标识,其对应的value是一个List对象,所有的ActionMessage存储在List中.也就是说key标识了一组ActionMessage.
页面上是通过struts的
11. 普通的ActionForm和动态的ActionForm有什么区别,在动态的ActionForm中如何设
定一个日期类型的属性
6/38
1. 动态的ActionForm,由actionform继承而来,之所以有这个东西是因为,它特点是不需要FormBean,而是在struts-config.xml中通过form-property来设置form的表单字段属性.优势是减少在大型开发过程中formbean的增加而显得程序臃肿,给维护和升级带来极大的不便.
2.需要注意的是: 在JSP或Action中访问动态ActionForm时与标准的ActionFrom有所不同,标准ActionForm为每个属性均提供了一对getXXX()/setXXX()方法,通过调用getxxx()/setxxx()方法即可读取或设置ActionForm某个属性.而DynaActionForm则把所有的属性保存在一个Map类对象中,只能通过get()和put()来存取其属性值. 如,从动态表单实例中读取会员的注册信息:
String username=form.get(\String password=form.get(\String phone=form.get(\
在动态的ActionForm中,要设置一个日期类型的属性,有两种方式:
1.直接将数据类型设置为java.sql.Date,但是在页面上必须输入yyyy-mm-dd格式的日期才能行。
2.将类型设置为java.lang.String,不过后台需要转换。
12. 动态ActionForm是以什么方式存取表单控件的值的。要使用动态ActionForm取得一
个控件的值是如何取得
动态ActionForm是通过在配置文件中设置相应的表单控件的名称的属性来实现表单控件值的存取。
取得动态ActionForm的控件的值的方法有两种,一是通过request.getParameter()的方法来获得,二是使用动态的ActionForm来获取值,只要调用相应的动态ActionForm的get()方法,如:testDynamicActionForm.get(\控件名称\。
13. 普通的Action与DispatchAction的区别是什么
普通Action通常只能完成一种业务操作.
DispatchAction可以处理多个业务请求, 只不过再配置Action的时候需要设置parameter=\
请求时这样写http://localhost:8080/test.do?your_method=add&id=1
7/38
其中add是继承DispatchAction的Action类的一个业务操作。
继承DispatchAction 设置parameter 改变execute方法 方法名以task一致
14. Struts框架中常用的有HTML/Bean/Logic标签,这些标签的主要功能是什么
1) HTML Tags:该标签库包含的标签可以用来创建Struts输入表单。
2) Bean Tags:该标签库包含的标签可以用来创建bean、访问bean和访问bean的属
性。同时提供了依据cookies、headers和parameters的值创建相关bean的能力。 3) Logic Tags:该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。
15. HTML标签中的name属性代表什么功能,为什么可以省略不写
当标签与JavaBean合作的时候,Name代表作用域中Bean的名称;当标签没有跟JavaBean合作,Name表示作用域中对象的名称。因为在配置文件中已经通过name这个属性将action和actionForm关联在一起了,所以可以不用写。
16. Struts标签中name和property两个属性的作用和区别
当标签与JavaBean合作的时候,Name代表作用域中Bean的名称; Property Bean中属性的值。
17. 请简述J2EE平台体系中标签的体系结构
在标签体系中,最高的是JspTag,它是一个接口,内部没有任何的东西;接着是Tag和SimpleTag,他们都是接口,SimpleTag是简单的标签类,只能实现无body的标签,它的实现类是SimpleTagSupport。
Tag下面的接口是IterationTag;它的子接口是BodyTag;IterationTag的实现类有TagSupport,主要用来做无body的标签,BodyTagSupport继承自TagSupport并实现了BodyTag接口,主要实现有body标签。 18. 请简述自定义标签的步骤
创建实现了 Tag 接口的标签处理程序类,继承TagSupport 创建一个 TLD 文件
在标签处理程序 Java 类中创建属性
在 TLD 文件中定义与标签处理程序 Java 类中定义的属性对应的属性
8/38
实现 doStartTag() 方法 在jsp页面导入标签库
19. 如何在自定义标签中获取ServletContext,HttpSession,HttpServletRequest这些
JSP页面常见的对象
1、获取ServletContext对象:
this.pageContext.getServletContext(); 2、获取HttpSession对象:
this.pageContext.getSession() 3、获取HttpServletRequest对象:
ServletRequest servletRequest = this.pageContext.getRequest(); HttpServletRequest request = (HttpServletRequest) servletRequest;
20. Servlet2.4版本中新增加了一个标签为简单标签,要实现简单标签的话,必须实现标
签中的哪一个方法,该方法有没有返回值
创建实现了 Tag 接口的标签处理程序类,继承SimpleTagSupport 创建一个 TLD 文件
在标签处理程序 Java 类中创建属性
在 TLD 文件中定义与标签处理程序 Java 类中定义的属性对应的属性 实现 doTag() 方法 在jsp页面中导入标签库
没有返回值。
21. Struts框架如何实现国际化的步骤
资源文件的编写
Jsp页面必须使用UTF-8编码机制
使用
(request.getSession().setAttribute(Globals.LOCALE_KEY, locale));
22. 如何实现页面中HTML标签的初始值设置
共分享92篇相关文档