打个广告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之路第一天相关推荐

  1. Struts2 入门修行第一天 | 小节二

    Struts2 入门修行第一天 | 小节二 通过上一篇我们基本搭建一个 Struts2 环境成功啦,现在我们页面需要数据传递等 我们这里把第一个页面修改为一个添加数据的页面,在第二个页面显示第一个页面 ...

  2. 菜鸟haqima的Java学习之路第一天

    菜鸟haqima的Java学习之路第一天 导读:DOS命令 常用快捷键 Java的简单概述 (第一章 Java开发环境的搭建) 1.常用的DOS命令 1.1.怎么打开DOS命令窗口 win键+r(组合 ...

  3. Cyclone V SoC FPGA学习之路第一章:综述

    Cyclone V SoC FPGA学习之路第一章:总体了解 关键词: adaptive logic modules – ALM 自适应逻辑模块 logic array block --LAB 逻辑阵 ...

  4. 周鸿祎:走好创业之路第一步( 转)

    周鸿祎:走好创业之路第一步 2007年02月08日 星期四 05:27 P.M. 做事情大处着眼,小处着手 成功者的创业初衷,往往是为了解决一个简单的问题.Jerry和David 创办雅虎时, 就是觉 ...

  5. 萌新的java学习之路——第一周

    萌新的java学习之路--第一周 第一周的学习 这是我学习Java的第一周,写这个博客更多的时为了总结自己这一周的学习情况,如果有人看到我写的博客,有什么问题的话,可以问我.虽然我也是一个小白,但我会 ...

  6. unity鸽子之路第一天 小蜜蜂3d(伪)

    unity鸽子之路第一天 小蜜蜂3d(伪) 前言 一.消失的包 二.使用步骤 1.引入 2.编译目标 < 前言 咕咕咕咕咕咕 6天过去了 今天先从导包开始吧 一.消失的包 根据官方的demo所说 ...

  7. Spring整合Struts2框架的第一种方式(Action由Struts2框架来创建)。在我的上一篇博文中介绍的通过web工厂的方式获取servcie的方法因为太麻烦,所以开发的时候不会使用。...

    1. spring整合struts的基本操作见我的上一篇博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2 ...

  8. ase支持 urp不_urp管线的自学hlsl之路 第一篇 序言

    入坑unity学习已经有一年半了,shader很早就在用连连看学习和使用(lwrp hdrp的shadergraph和build in的ase).但是随着对于画质和效果的追求和提高,使用手写shade ...

  9. Python之路第一课Day2--随堂笔记

    入门知识拾遗 一.bytes类型 bytes转二进制然后转回来 msg="张杨" print(msg) print(msg.encode("utf-8"))pr ...

最新文章

  1. 【Storage】Ubuntu LVM 安装配置
  2. 使用angular5+ionic3+sqlite创建离线app应用
  3. python中的模块和包
  4. C经典之14-双向链表存储1-10---ShinePans
  5. 双11怎么那么强!之二:浅析淘宝网络通信库tbnet的实现
  6. .NET Core微服务之基于Ocelot实现API网关服务
  7. 4.c++模式设计-建造者模式
  8. Oracle开源Fn,加入Serverless之争
  9. 绑定数据源注意的地方
  10. VS201x+Qt5开发,中文乱码解决
  11. 找茬小游戏微信小程序源码自带流量主功能+前端+后端+教程
  12. 新研博美反式环辛烯-三乙二醇-氨基,TCO-PEG3-Amine可用于在活化剂(如EDC或DCC)或活化酯(如NHS酯)存在下通过稳定的酰胺键衍生羧基
  13. PDFlib 开发指南
  14. 使用GRUB2制作多重系统引导程序
  15. 国科大数字图像处理(复习与整理)
  16. 【无标题】输入和输出
  17. c#通过输入年月日输出该月的天数
  18. 认购定增股份是什么意思?
  19. android 从左向右平移_Android实现循环平移动画示例
  20. SQL多表查询:左外连接、右外连接、满外连接、UNION ALL

热门文章

  1. Citrix桌面及应用虚拟化系列之三:活动目录架构准备
  2. 使用SeekBar组件调节屏幕亮度
  3. 右下角android sdk content loader 加载很慢的解决方法
  4. android sharedpreferences工具类
  5. USACO翻译:USACO 2014 FEB SILVER 三题
  6. 关键字—修饰方法、类、属性和变量的关键字(共9个)
  7. Flutter入门:动画相关
  8. js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...
  9. 重温Javascript(四)-函数
  10. Android模拟器(包括Genymotion)访问本机服务器