Struts2基本流程及基础知识问答
2017-01-05 16:44
435 查看
这是我在struts2学习过程中的一些思考和查阅所得答案:
我能看懂的是什么?
1、为什么要用接口和实现类。
增加项目的可扩展性,方便后期升级和维护。
2、项目的整体流程。
HTML页面(JQuery Ajax 提交action请求)——》控制类action类——》调用service处理业务逻辑——》调用Dao层存取数据
我不能看懂的是什么?
1、使用struts需要什么配置?
web.xml(Tomcat webapp ROOT下复制):配置struts2的核心控制器FilterDispatcher;为FilterDispatcher建立映射。
struts.xml:
2、Action类是什么角色,怎么获取浏览器提交的数据?
Action起控制器的角色,接收请求并分流请求,然后传递给service层处理业务逻辑。
获取数据的方法:
action类中定义了和表单(或提交数据)中完全同名的属性以及其getter和setter方法,这样,Struts2框架就会自动把提交的数据赋给相应的属性,都不用专门去接收了!(如果是servlet的话还要专门去接收)
3、如何在Action中往request、response或session中添加获取属性(换句话说就是怎么拿到request、response等对象)?
方式一:com.opensymphony.xwork2.ActionContext (implements java.io.Serializable)
ActionContext.getContext().getSession()
该方法返回Session的map,可以往里面添加属性,然后再页面获取。但是ActionContext不能获取HttpServletRequest和HttpServletResponse。
方式二: org.apache.struts2.ServletActionContext
class ServletActionContext :Web-specific information for actions(专为web开发设计的类)
ServletActionContext是ActionContext的子类
这样就可以获取request和response了。完美!
4、Action只是一个普通的java类吗?
一般action都会继承struts2提供的ActionSupport类,该类提供了一些比较规范的常量,如SUCCESS等,并且提供了validate方法进行表单验证。
5、struts.xml中包必须要继承struts-default包吗?
一般来说,用户在自己编写struts.xml是,都要使用extends继承struts-default.xml文件中定义的struts-default包,因为该包定义了一些struts2框架要使用到的资源,比如Bean、result类型、拦截器等。
6、怎么使用action类?
编写好action类后,只有在struts.xml文件中配置该action才能使用它处理请求。
7、Action类是控制器,那它的业务逻辑写在哪里?
首先,action类会继承struts2的ActionSupport类,然后就可以将业务逻辑重写进该类的execute方法,struts2框架会默认执行该方法里面的逻辑。
8、如果我只想请求User类中的regist方法该怎么办?execute方法不是只有一个吗?
这就要用到Action类方法的动态调用了:jsp页面中的form(或Ajax请求中的请求链接)通过“action=ActionName!MethodName.action”将请求提交给Action的特定方法去处理。
9、JSP+Servlet模式中视图层可以通过req获取需要装填的信息,那么作为一个更优秀的框架,struts2的视图层怎么获取Action的信息?
ONGL(Object Navigation Language)对象导航语言,是一种即简单又强大的表达式语言。它是struts2框架视图默认的表达式语言。通过使用OGNL,Struts2视图可以直接获取模型层的数据。
ONGL通常用“对象.属性”的形式来调用,如Person.name就表示person的那么属性。
如果要获取request、session等里面的信息的话,则实例如下
10、如果我要在视图中显示一个集合,应该怎么做呢?
这就要用到struts2标签库了。使用struts2中的iterator标签就可以解决该问题,实例如下
Struts2还有诸如if/else、append等等标签,使用的时候百度查就可以了。
我能看懂的是什么?
1、为什么要用接口和实现类。
增加项目的可扩展性,方便后期升级和维护。
2、项目的整体流程。
HTML页面(JQuery Ajax 提交action请求)——》控制类action类——》调用service处理业务逻辑——》调用Dao层存取数据
我不能看懂的是什么?
1、使用struts需要什么配置?
web.xml(Tomcat webapp ROOT下复制):配置struts2的核心控制器FilterDispatcher;为FilterDispatcher建立映射。
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
struts.xml:
<!--struts的配置都要在这个里面--> <struts> <!--增加包,以此避免action名重复--> <package name="包名" extends="struts-default"> <action name="action的名称" class="该action的全限定名"> <result name="该action的可能返回值,例如success">success.jsp</result> <result name="该action的可能返回值,例如fail">fail.jsp</result> </action> </package> </struts>
2、Action类是什么角色,怎么获取浏览器提交的数据?
Action起控制器的角色,接收请求并分流请求,然后传递给service层处理业务逻辑。
获取数据的方法:
action类中定义了和表单(或提交数据)中完全同名的属性以及其getter和setter方法,这样,Struts2框架就会自动把提交的数据赋给相应的属性,都不用专门去接收了!(如果是servlet的话还要专门去接收)
3、如何在Action中往request、response或session中添加获取属性(换句话说就是怎么拿到request、response等对象)?
方式一:com.opensymphony.xwork2.ActionContext (implements java.io.Serializable)
ActionContext.getContext().getSession()
该方法返回Session的map,可以往里面添加属性,然后再页面获取。但是ActionContext不能获取HttpServletRequest和HttpServletResponse。
方式二: org.apache.struts2.ServletActionContext
class ServletActionContext :Web-specific information for actions(专为web开发设计的类)
ServletActionContext是ActionContext的子类
这样就可以获取request和response了。完美!
4、Action只是一个普通的java类吗?
一般action都会继承struts2提供的ActionSupport类,该类提供了一些比较规范的常量,如SUCCESS等,并且提供了validate方法进行表单验证。
5、struts.xml中包必须要继承struts-default包吗?
一般来说,用户在自己编写struts.xml是,都要使用extends继承struts-default.xml文件中定义的struts-default包,因为该包定义了一些struts2框架要使用到的资源,比如Bean、result类型、拦截器等。
6、怎么使用action类?
编写好action类后,只有在struts.xml文件中配置该action才能使用它处理请求。
7、Action类是控制器,那它的业务逻辑写在哪里?
首先,action类会继承struts2的ActionSupport类,然后就可以将业务逻辑重写进该类的execute方法,struts2框架会默认执行该方法里面的逻辑。
8、如果我只想请求User类中的regist方法该怎么办?execute方法不是只有一个吗?
这就要用到Action类方法的动态调用了:jsp页面中的form(或Ajax请求中的请求链接)通过“action=ActionName!MethodName.action”将请求提交给Action的特定方法去处理。
9、JSP+Servlet模式中视图层可以通过req获取需要装填的信息,那么作为一个更优秀的框架,struts2的视图层怎么获取Action的信息?
ONGL(Object Navigation Language)对象导航语言,是一种即简单又强大的表达式语言。它是struts2框架视图默认的表达式语言。通过使用OGNL,Struts2视图可以直接获取模型层的数据。
ONGL通常用“对象.属性”的形式来调用,如Person.name就表示person的那么属性。
如果要获取request、session等里面的信息的话,则实例如下
<s:property value="#request.msg" />,具体实例在使用时再去查就好了。
10、如果我要在视图中显示一个集合,应该怎么做呢?
这就要用到struts2标签库了。使用struts2中的iterator标签就可以解决该问题,实例如下
<s:iterator value="myMap" status="st"> <s:property value="#st.getIndex()"/> </s:iterator>
Struts2还有诸如if/else、append等等标签,使用的时候百度查就可以了。
相关文章推荐
- [ FI基本业务流程 ] - Accounts Payable基础知识
- JAVA基础知识思维导图:unit01_开发环境,变量,基本类型及转换,数学运算,流程控制,数组
- Ruby基础知识之基本流程控制
- 【struts基础】Struts2工作基本流程
- struts2基础知识和工作流程
- Ndk基础知识(二)Ndk基本使用流程
- Python基础知识(三)--基本的异常处理、算术运算符、输入/输出
- java基础知识3——流程控制语句
- Struts2基础知识(二)
- Spread控件基础知识(基本常用属性事件等)
- 十四个ASP.NET基础知识问答(C#版)
- 最基本财务基础知识
- 介绍的嵌入式软件开发的背景知识,基本逻辑和流程,基本名词、概念和理念
- [C++ 面试基础知识总结] 变量和基本类型
- Java基础知识学习之路-05-第四章-流程控制与数组
- css基本不懂,记下基础知识,用起来方便
- LoadRunner性能测试基础知识问答
- C/C++基础知识:函数指针和指针函数的基本概念
- Struts2基础知识
- ezpublish 开发基础和基本流程