Struts问题
1.struts框架的5大组件:mvc,标签库,校验框架,国际化,tiles;
2.struts的9大核心类以及与mvc对应的关系:
C
ActionServlet
RequestProcessor
Action
actionMapping(struts-config.xml)
actionFormard
V
ActionForm
Jsp
M
Dao
Manager(facade)
3.Struts处理请求的全过程(8个步骤)。(struts如何通过一个url找到一个action)。struts的核心配置文件。
a.url-->ActionServlet(process)-->RequestProcessor(process)-->实例化form-->填充form值-->进行校验-->实例化action-->调用execute
b.核心配置文件为:struts-config.xml
4.mvc是什么,使用mvc的目的。
a. mvc(model view controller):m是指数据模型,v是指用户界面,c则是控制器。
b.使用MVC的目的是将M和V实现代码分离。也就是前台html/jsp表现层和后台java逻辑层分离。
5.mvc在action中的三种对应类及其作用。(难理解)
6.struts的四大标记类及其作用。
Bean 标记:用来在 JSP 页中管理 bean
逻辑标记:用来在 JSP 页中控制流程
HTML 标记:用来生成 HTML 标记,在表单中显示数据,使用会话 ID 对 URL 进行编程
模板标记:使用动态模板构造普通格式的页大标记类及其作用。
7.在struts中配置数据源及如何取出数据源(dataSource)
Struts-config.xml
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=t23"/>
<set-property property="username" value="sa"/>
<set-property property="password" value=""/>
</data-source>
</data-sources> 取出dataSource
DataSource ds=(DataSource)this.getServlet().getServletContext().getAttribute("data");
Connection conn=ds.getConnection();
8.如何在Jbuilder中开发struts?
新建工程
建立Web模型
建立一个ActionForm
建立一个Action
修改struts-config.xml文件
9.如何实现struts的validator(校验)框架
手动:
public class myForm extends ActionForm{
public ActionErrors validator(){
actionErrors.add(ActionErrors.GLOBAL_MESSAGE,new ActionMessage("properties中的key名"));
}
}
在struts-config.xml中修改action的标签validator=true,input="错误页面"。当validator方法中ActionErrors不为空且size>0时,会返回input页面。
public cliass myForm extends ValidatorForm{
不能覆盖validator方法。
//public void validate(){}
} 在struts-config.xml中加入插件
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml"/>
</plug-in> 修改validator.xml中内容
errors.required{0} is required.
errors.minlength{0} can not be less than {1} charactors. <formset>
<form name="loginForm">
<field property="userName" depends="required">
<arg0 key="userName"/>
</field>
<field property="password" depends="required,minlength">
<arg0 key="password"/>
<arg1 key="${var:minlength}" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</field>
</form>
</formset> struts-config.xml中修改action的标签validator=true,input="/error.jsp"
10.实现国际化
国际化:不用修改代码就可以适应不同国家的语言。
本地化:如果要适应一个国家的语言,要修改源代码。
实现过程:
在struts-config.xml中配置资源文件名。
<message-resouces parameter="struts.ApplicationResources"/>
在资源文件对应的目录struts中加入语言和国家的配置文件
ApplicationResources_zh_CN.properties 中国
ApplicationResources_en_US.properties 美国
如果不是英语要转码:native2ascii -encoding gb2312
源ApplicationResources_zh_CN.properties。
在jsp页面中用:
<bean:message key=""/>取出信息
转
Struts2 常用的常量配置:http://www.cnblogs.com/yokoboy/archive/2013/01/25/2877145.html
Struts问题的更多相关文章
- 菜鸟学Struts2——Struts工作原理
在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...
- Struts的拦截器
Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...
- Struts框架的核心业务
Struts的核心业务 Struts核心业务有很多,这里主要介绍了比较简单一些的: 请求数据的处理,和数据自动封装,类型自动转换 1.Struts中数据处理 1.1.方式1:直接过去servletap ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
- 配置hibernate,Struts。文件
hibernate文件配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernat ...
- hibernate与Struts框架结合编写简单针对修改练习
失败页面fail.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- 3. 解析 struts.xml 文件
1. struts.xml 文件基本配置: 主要放在资源路径下,配置 sturts2相关的 Action , 拦截器等配置 <struts> <!-- 设置常量 --> < ...
- Struts+Spring+Hibernate项目的启动线程
在Java Web项目中,经常要在项目开始运行时启动一个线程,每隔一定的时间就运行一定的代码,比如扫描数据库的变化等等.要实现这个功能,可以现在web.xml文件中定义一个Listener,然后在这个 ...
- Struts 原理
今天开始接触公司的框架,叫YNA,三个字母应该是雅马哈的缩写,这个框架听公司前辈说功能很强大,但实际上我看不懂.哈哈...... 其中整合了SSH框架,接下来我说下Struts的一些原理 其实这张图就 ...
- axis2+struts拦截地址冲突问题
axis2和struts在整合过程中,struts会把axis的地址也拦截了,默认当成一个action处理, 会因为找不到action而报错: <!-- struts配置 --> < ...
随机推荐
- Unity&UGUI
UI:User Interface 用户交互接口,处理用户与程序直接的交互 新建一个UI控件,都会同时新建两个物体: --Canvas:画布,所有的UI控件都必须放到画布上 --EnventSyste ...
- Mysql 数据类型(基础5)
Mysql 常用的4种数据类型: 整型 int. 浮点型 double. 日期类型 datetime .字符型( varchar char text ) #创建一张表 mysql> create ...
- Java Runtime
Runtime 类代表着Java程序的运行时环境,构造方法 private Runtime(){},采用单例模式,一个jvm只有一个Runtime实例对象,该类会被自动创建,我们可以通过Runtime ...
- 【Nodejs】Expressのファイルアップロード(FileUpload)のMulterについて
https://github.com/expressjs/multer/blob/master/doc/README-zh-cn.md Multer 是一个 node.js 中间件,用于处理 mult ...
- ucore-lab1-练习1report
练习1 report 问题1:OS镜像文件ucore.img是如何一步一步生成的(需要比较详细地解释Makefile中的每一条相关命令和命令参数的含义,以及说明命令导致的结果)? GNU make是一 ...
- c++:空构造空析构的益处之一
项目开发过程中发现一个问题,有段代码,一个动态库的cpp代码里不包含头文件中类的空构造空析构实现,就会出现编译出的动态库依赖项少了很多.而添加后则多了好几个依赖项.下面看例子: ##a.h class ...
- Android 基础 (四大组件,五大存储,六大布局)
Android四大组件: 参考:https://blog.csdn.net/shenggaofei/article/details/52450668 Android四大组件分别为activity.se ...
- 关于json.stringify的注意事项
今天通过navigator.getCurrentPosition中的success回调,用json.stringify打印postion时,怎么打印都只是一个{}, 而打印postion.coords ...
- win8 IIS配置
iis发展到win8已经到是iis8.0了.至于如何安装的,咱们接下来看.大体和iis6安装差别不大.iis8安装起来也是很方便的. 1.打开“控制面板”——“程序和功能”.如下图所示 2.点击“启用 ...
- input 与raw_input的区别
input只能输入数字 raw_input 既可以输入数字也可以输入字符串 >>> input("input you name:") input you name ...