Struts2之路第一天
打个广告java1234资源分享
1.Struts2的核心是将请求与视图分开,只需要改配置文件就可以改变视图。
2.jsp文件报错:Can not find the tag library descriptor for "/struts-tags"。
<!-- <%@ taglib prefix="c" uri="/struts-tags" %>会报错,错误提示为: Can not find
the tag library descriptor for "/struts-tags" struts-core-xxx.jar包不是struts2的需要在web中配置:
-->
1 <jsp-config> 2 <taglib> 3 <taglib-uri>/struts-tags</taglib-uri> 4 <taglib-location>/WEB-INF/lib/struts2-core-2.1.6.jar</taglib-location> 5 </taglib> 6 </jsp-config>
我之后又启动服务器时,报错org xml sax saxparseexception前言中不允许有内容,当我把加进去的这段代码删了之后,两个错误都没了。
3.修改默认编码 Preferences->搜索jsp->JSP Files 将Encoding改为 ISO 10646/Unicode(UTF-8),IANA就会变为UTF-8.
4.Struts1里面action对象只有一个,Struts2里面每次访问都会创建一个对象
5.路径问题,当在struts.xml里面没有找到对应的namespace时,会返回到web.xml,找到welcome file,将默认的欢迎界面返回到客户端。struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。可以在jsp页面如加入
<%
String Path = request,getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
再在head标签中加入
<base href="<%=basePath%>"/>
这样,该文档中所有href链接前面均加上了http://站点名:端口号/项目名/,如http://localhost:8080/Struts2_0100/
6.Action 执行的时候不一定要执行execute方法。可以使用动态方法调用DMI,有两种方式
a.通过配置文件struts.xml中action的method属性指定调用方法,如:
<action method="调用方法名">;
b.在URL中动态指定调用方法,使用感叹号“!”将action名和调用方法名分割开,如:
http://localhost:8080/Struts2_DMI/user!add
7.通配符*
<package name="actions" extends="struts-default" namespace="/actions"><action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}"><result>/Student{1}_success.jsp</result></action><action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}"><result>/{1}_{2}_success.jsp</result><!-- {0}_success.jsp --></action></package>
通配符*表示所有,{1}表示第一个*代表的字符串,{2}表示第二个*代表的字符串。如果使用通配符*,要先约定好命名规则,“约定优于配置” 。
8.jdk1.5和jdk1.6的区别在jdk1.5中,如果实现的是一个接口,就不能写@override,在jdk1.6中可以写。设置jdk,proporties --> Java Compiler:在Compiler compliance lever中选择合适的jdk版本,注意Tomcat里面也弄成一样的。
9.用Action 的属性接收参数,Action里面的成员变量和URL地址里面的参数可以是一一对应的。Struts2会自动调用方法把参数值传递到成员变量里,所以getter方法名要与变量名一致。
10.DomainModel接收参数。DomainModel是域模型,是真正存在的实体概念。执行action时会自动生成DomainModel对象,接收参数。当参数个数与DomainModel对象的属性不一致时,我们可以创建VO。action执行时,参数会先与VO对象匹配,然后可以用new DomainModel(VO),将VO整体的交到DoainModel里面.
11.使用ModelDriver接收参数,实现ModelDriver接口,调用getModel方法,返回一个DomainModel实体对象
12.刚刚新建一个struts2的项目时,用的是2.3.15的版本,只导入七个jar包时报错java.lang.RuntimeException: java.lang.reflect.InvocationTargetException和java.lang.NoClassDefFoundError:org/apache/commons/lang/StringUtils这是因为缺少commons-lang3-3.1.jar和javassist-3.11.0.GA.jar这两个jar包造成的。
转载于:https://www.cnblogs.com/ligui989/p/3170053.html
Struts2之路第一天相关推荐
- Struts2 入门修行第一天 | 小节二
Struts2 入门修行第一天 | 小节二 通过上一篇我们基本搭建一个 Struts2 环境成功啦,现在我们页面需要数据传递等 我们这里把第一个页面修改为一个添加数据的页面,在第二个页面显示第一个页面 ...
- 菜鸟haqima的Java学习之路第一天
菜鸟haqima的Java学习之路第一天 导读:DOS命令 常用快捷键 Java的简单概述 (第一章 Java开发环境的搭建) 1.常用的DOS命令 1.1.怎么打开DOS命令窗口 win键+r(组合 ...
- Cyclone V SoC FPGA学习之路第一章:综述
Cyclone V SoC FPGA学习之路第一章:总体了解 关键词: adaptive logic modules – ALM 自适应逻辑模块 logic array block --LAB 逻辑阵 ...
- 周鸿祎:走好创业之路第一步( 转)
周鸿祎:走好创业之路第一步 2007年02月08日 星期四 05:27 P.M. 做事情大处着眼,小处着手 成功者的创业初衷,往往是为了解决一个简单的问题.Jerry和David 创办雅虎时, 就是觉 ...
- 萌新的java学习之路——第一周
萌新的java学习之路--第一周 第一周的学习 这是我学习Java的第一周,写这个博客更多的时为了总结自己这一周的学习情况,如果有人看到我写的博客,有什么问题的话,可以问我.虽然我也是一个小白,但我会 ...
- unity鸽子之路第一天 小蜜蜂3d(伪)
unity鸽子之路第一天 小蜜蜂3d(伪) 前言 一.消失的包 二.使用步骤 1.引入 2.编译目标 < 前言 咕咕咕咕咕咕 6天过去了 今天先从导包开始吧 一.消失的包 根据官方的demo所说 ...
- Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。...
1. spring整合struts的基本操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2 ...
- ase支持 urp不_urp管线的自学hlsl之路 第一篇 序言
入坑unity学习已经有一年半了,shader很早就在用连连看学习和使用(lwrp hdrp的shadergraph和build in的ase).但是随着对于画质和效果的追求和提高,使用手写shade ...
- Python之路第一课Day2--随堂笔记
入门知识拾遗 一.bytes类型 bytes转二进制然后转回来 msg="张杨" print(msg) print(msg.encode("utf-8"))pr ...
最新文章
- 【Storage】Ubuntu LVM 安装配置
- 使用angular5+ionic3+sqlite创建离线app应用
- python中的模块和包
- C经典之14-双向链表存储1-10---ShinePans
- 双11怎么那么强!之二:浅析淘宝网络通信库tbnet的实现
- .NET Core微服务之基于Ocelot实现API网关服务
- 4.c++模式设计-建造者模式
- Oracle开源Fn,加入Serverless之争
- 绑定数据源注意的地方
- VS201x+Qt5开发,中文乱码解决
- 找茬小游戏微信小程序源码自带流量主功能+前端+后端+教程
- 新研博美反式环辛烯-三乙二醇-氨基,TCO-PEG3-Amine可用于在活化剂(如EDC或DCC)或活化酯(如NHS酯)存在下通过稳定的酰胺键衍生羧基
- PDFlib 开发指南
- 使用GRUB2制作多重系统引导程序
- 国科大数字图像处理(复习与整理)
- 【无标题】输入和输出
- c#通过输入年月日输出该月的天数
- 认购定增股份是什么意思?
- android 从左向右平移_Android实现循环平移动画示例
- SQL多表查询:左外连接、右外连接、满外连接、UNION ALL
热门文章
- Citrix桌面及应用虚拟化系列之三:活动目录架构准备
- 使用SeekBar组件调节屏幕亮度
- 右下角android sdk content loader 加载很慢的解决方法
- android sharedpreferences工具类
- USACO翻译:USACO 2014 FEB SILVER 三题
- 关键字—修饰方法、类、属性和变量的关键字(共9个)
- Flutter入门:动画相关
- js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...
- 重温Javascript(四)-函数
- Android模拟器(包括Genymotion)访问本机服务器