返回列表 发帖

[轻量级Java EE] 《轻量级Java EE企业应用实战》按页码勘误整理

本帖最后由 jlu_lamp_lamp 于 2011-10-27 11:23 编辑

本书已经重印,下面绝大部分勘误都已得到了改正。

就像“《疯狂Java讲义》按页码勘误整理”帖一样。

我根据“《轻量级Java EE企业应用实战》征集勘误”帖子将所有的勘误按照页码顺序列了出来,同时把重复的删除了。

并且会根据“《轻量级Java EE企业应用实战》征集勘误”的帖子保持即时更新。


更新依据:“《轻量级Java EE企业应用应战》征集勘误”帖子中有评分记录的贴子。

当前更新日期至:2011年10月27日11点26分

当前更新位置至:“《轻量级Java EE企业应用应战》征集勘误”帖子第69楼。


P XI
268应为368

P3
最下面一行
"Objec"缺少"
t"

P4
1.1.3节第11行
果我们新开发的系统不能与新系统有机地融合在一起
新改成老


P10
第4行
进入webapps/WEB-INF, 改为"webapps/manager/WEB-INF"


P26
图1.18中
选择使用
怎样的Java EE5.0规范
改为"选择使用 Java EE5.0规范"


P31
最后一行
ant   -verbose   -f   a.log
应该为:
ant   -verbose   -l   a.log


P33
第二段灰色代码段
<!--只要没有设置了prop1属性,就可以执行exB target-->  把"1"改为"2"   把"了"删除,


P33
最上面一行
|--class: 改为"classes"


P34
中间位置小标题
1.proprty元素,     proprty改为"property"


P38
灰色代码段倒数第4行
arg line="测试参数1....."/> 缺少"<"


P73
灰色code下面一行
如果没有通过page指令的import指令导入这些类.第二个"指令"改为"属性"

P74
第一行
info方法指定了, "方法"改为"属性"

P87
request: javax.servlet.http
:HttpServletRequest ":"改为"."

P88
文字第2行开头
"reques"缺少"t"


P95
上面的配置文件片段中粗体字代码为该Servlet(其实是JSP)配置了2个参数:name和value
应为
上面的配置文件片段中粗体字代码为该Servlet(其实是JSP)配置了2个参数:name和age

P96
倒数第六行,_jspSerivice()
应为_jspService()


P114
destory():销毁Servlet实例时,自动调用该方
法的回收资源 "的"改为"来"

P117
servlet的生命周期的第3点
doPOST
方法处理并响应请求  "doPOST"改为"doPost",

P133
最下面一行注释不正确
<!-- 定义标签体支持JSP脚本 -->
<body-content>scriptless</body-content>
改为:<!-- 定义标签体不允许使用JSP脚本 -->


P162
3.2 节里所有程序清单的codes\03\3.1应该改为codes\03\3.2

P162
最后一行
应该是:程序清单:codes\03\3.2\Struts2Demo\src\messageRource.properties

P163
注意方框下面一行
......该表单的的
action为Login,"L"改为小写


P167
3.4.1节第3行
该文件包含了系列的key-
value对象,
把"象"去掉

P174
灰色code中
return resultStr  缺少";"

P176
灰色code上面一行 ActionSuport 拼写错误

P176
灰色code往上数一行
Struts2还提供了
Action类的一个实现类,
改为:Struts 2还为Action接口提供了一个实现类,


P179
第3行
passwor 缺少"d"

P182
最下面一行注释
<!--.......该Action类为com.opensymphony.webwork.showcase.DateAction--> 改为"lee.DateAction"

P183
第二段灰色code下面一行
.....已经定义了struts-default.xml抽象包 把".xml" 删除

P184
灰色代码段中的注释
<!--配置一个名为Login的的Action--> "L"改小写


P184
第二个code中而GetBooks是Action名    好像应改为getBooks是Action名
第二个code中 http://localhost:8888/namespace/book/GetBooks.action  好像应改为
http://localhost:8888/namespace/book/getBooks.action  


P189
最下面两行和p190页上面两行中,出现的"Login"和"Regist"单词中的首字母都要改为小写

P191
最上面一行
但该method属性使用了一个表达式{0} ,0改为1

P193
倒数第3行
defAction.actin   "actin"拼写错误


P195
code中  <default-action-ref name="simpleViewResultAction"> 好像应改为
        <default-action-ref name="simpleViewResultAction"/>


P198
灰色code中
<result-type name="redirect-action" class=".........."/>  redirect-action应该改为"redirectAction"
struts2-core-2.1.2.jar中的struts-default.xml中的配置
<result-type name="redirectAction" class
="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>

P207
注意方框中第3行
,一
定将.......,  "一定要将"

P207
提示方框往上数3行
则Action里的局部Action会覆盖全局Action,  把"Action"改为"result"


P208
灰色Code下面一行
一个参数用于配置Struts2常量,......第二个参数才是
改为:第二个参数用于配置Struts2常量,......第一个参
数才是.......

P209
第一段最后一句中的:  用于指定该Action所在的包要继承的父包  好像应改为
                    用于指定该Action所在的命名空间
第二段最后一句中的:用于指定该Action所在的命名空间  好像应改为   用于指定该Action所在的包要继承的父包


P214
灰色code中
  result name="sql">/exception.jsp</result>  缺少"<"

P223
第3行
但系统输出全局资源文件里的succTip和failTip, "全局"改为"包范围"

P247
第2行讲解有误
这是因为在struts.xml文件中配置了如下常量
<constant name="struts.date.format" value="yyyy年MM月dd日"/>
(p246页注意方框下面一行  讲解的是,.........则系统会到国际化资源文件中寻找key为struts.date.format的消息)
应该改为;
这是因为在国际化资源文件中增加了如下配置
struts.date.format=yyyy年MM月dd日


P255
文字部分第一行
WEB-INF\class\template\lee,改为:WEB-INF\classes\template\lee

P271
第4行中的getActionError().........,    getActionError()改为getActionErrors()
第5行中的getActionMessage().....    getActionMessage()改为getActionMessages();.

P298
第一段灰色代码段下面的文字
指定第一个文本域的name属性为users[1].name,
Struts2将会把该文件域所代表的请求参数转换成users集合第一个元素的name属性
4.2.3节
第三行,
Struts2还知道.......处理该user属性吗?  "user"改为"users"

P299
灰色code第二行注释
//users属性的第一个User实例来.......  "一"改为"二"(上面一句代码中get(1), 取出的是第二个元素


P299
中间部分
........<ElementType>集合元素的类型即可(读不通)
改为:<ElementType>替换成集合元素的类型........

P303
灰色代码段下面一行
请求中的user请求参数将对该类型转换器处理 ,"对"改为"被"


P325
中间的那句灰色代码往下数2行
struts-xml  "-"改为"."

P341
第二段灰色code往上数2行
...........该Action的input逻辑指定视图资源, "逻辑"改为"逻辑视图"

P348
4.4.3节上面一行
复制到web应用的WEB-INF
路径下,  "WEB-INF"改为" WEB-INF/lib"

P355
灰色code往下数3行,"uploadContent Type"中间去掉空格

P358
第一段灰色code往上数2行
例如增加filterTypes()方法,把"s"去掉,(代码中是filterType()方法)

P360
最上面一行
文件上传的过滤器是fileUpload,  "过滤器"改为"拦截器"

P375
灰色代码段中倒数第二行注释
//根据需要自动创建数据库,  "库"改为"表"

P395
第4行
并且(identifier)会自动在save()被调用时产生并分配给cat,
改为:并且标识符(identifier)会自动在save()被调用时产生并分配给New对象

P398
第2个提示方框往下数3行
首先必须采用name元素来指...  "元素"改为"属性"



P412
第二段灰色代码块的注释部分(代码第15行):
<!-- 映射List集合属性 -->
改为<!-- 映射数组属
性 -->

P417
中间的灰色code下面一行和该灰色code往上数2行中出现的
score 改为"scores"

P418
第12段文字部分第一行:不过需要指出的是:虽然数组是最通用的有序集合,但数组使用延迟加载……
改为:不过需要指出的是:虽然数组是最通用的有序集合,但数组无法使用延迟加载……


P420
最上面的灰色code下一行
因为映射文件......., "因为" 改为"因此"

P422
第三段灰色code下面一行
虽然上面示列代码片段都示范了如何创建,删除存储过程,"储存过程"改为"触发器"

P423
最上面的灰色code注释
<!--使用data-object元素定义数据库对象--> "data"改为"database"


P428
最上面的灰色code下一行
持有该组件
组建的持久化实体 把"组建"删除

P435
倒数第3,4行中出现的
firstName,lastName分别改
为"first","last"(代码中是first,last)P437页灰色code下面一行同样的问题

P441
提示方框中
.....Hibernate做支持 "做"改为"所"

P444
灰色code下面一行
因此Person 类里增加了一个Person类型的属性. "Person"改为"Address"

P447
灰色code下3行
程序在1号代码处创建了一个瞬态的Person对象,"Person"改为"Address"

P449
灰色code中的注释
<!---.....用于映射N-1关联实体--> "N"改为"1"


P463
xml代码描述: 应该为 第463页中,xml代码描述:
<id name="addressid" column="column_id">
应该为
<id name="addressid" column="address_id">

P464
注意方框第2行
table元素的值,  "元素"改为"属性"


P478
介绍joined-subclass的继承映射策略时,父子类共有主键的列名不必相同。

P480
最下面的灰色code注释
<!--使用
identity的主键生成器策略--> "identity"改为"increment"

P481
灰色代码块第二行粗体字代码上的注释:
<!-- 使用union -subclass...
改为:<!-- 使用union-subclass...——去掉了中间的空格。

P486
6.4.1节第一段:SQL操作对象是数据表、列等数据对象,
改为:SQL操作对象是数据表、列等数据对象,


P508
最下面注意方框往上数5行
ResultSetMetdata ,改为"ResultSetMetaData'

P509
灰色代码块倒数第5行,指定将查询的记录行转换Student实体,
改为:指定将查询的记录行转换Enrolment实
体,

P511
中间的灰色code下1行
course表的
name列,    改为"name"改为"course_name"

P521
第2行
"Hiberante" 改为"Hibernate"

P523
第三段 除此之外,也可使用Hibernated的initialized()静态方法
改为:也可使用Hibernate的initialize()静
态方法

P533
7.1节第三段:而是以高度开发性...
改为:而是以高度开放性...


P535
注意方框上3行,
"CLASSPAH"改为"CLASSPATH"

P535
注意方框上1行
.........在Web应用中使用Spring.... "Web"改为"Java"

P537
步骤的第8点
"My  Eclipse" 中间去掉空格

P548
最后一行:new FileSystemResource(is);
改为:new FileSystemResource("bean.xml");


P548
提示方框下2行
ApplicationContextd 把"d"划掉

P552
灰色code中
//为容器事件定义无参数的构造器(把
该注释划掉)

P554
注意框下第二行,ContextRefreshedEven:
改为:ContextRefreshedEvent


P559
7.4.7节第3行
DTD 改为"DTO"


P571
第三段,并可执行新的配置信息...
改为:并可指定新的
配置信息...

P573
第4行
于prototype作用域的Bean,每次客户端代码请求时都返回同一个共享实例
prototype改为"singleton"


P577
最上面的灰色code下1行
......为Spring注册了...  
改为".....为
Spring容器注册了..."

P582
第3段灰色code下有4处出现"BeanFactory"的地方 改为"FactoryBean"

P585
灰色code中
targetClass.newInstance;    newInstance改为newInstance()


P585
注意方框下第3段
指定lazy
-loa="true" 把"loa"改为"init"

P586
7.7.2节第1行
Spring使用xml解析来解析出.....
改为:Spring使用xml解析器来解析出.....

P590
7.7.6节第2行
Propertis 改为"Properties"

P604
最后一行:
将default-autowire-candidat改为default-autowire-candidates


P606
黑体小标题下3行
<p
orperty...> 改为"<property..>"


P608
中间灰色code上1行
Spring-beans-2.5.xsd 改为"spring-util-2.5.xsd"


P610
灰色code第2行注释
<!--..使用util
.properties..-->  把"."改为":"


P613
上面灰色code下1行
当Spring容器实例
化两个Bean,........  把"两个"划掉


P615
中间灰色code下1行
....指定chinese bean
的id为...  "id"改为"name"

P617
注意框上一段:实现BeanFactoryPostProcessor接口的Bean后处理器...
改为:实现BeanFactoryPostProcessor接口的容器后
处理器...

P618
最上面一行:PropertyPlaceHolderConfigurer
改为:PropertyPlaceholderConfigurer

P618
灰色code注释
<!--....是一个Bean后处理器.........--> "Bean"改为"容器"

p619
8.1.5的第二段:我们可以认为当Spring配置信息是XML配置....
改为:我们可以认为Spring配置信息是XML配置....

P625
8.2.4节上面的几段文字中有3个地方出现"修改",都应该改为"修饰"

P627
第一段灰色code下一行
........被装配的Bean实例的名称是axe,   "axe"改为"steelAxe"

P646
第一段灰色code下3行
当该方法执行结束事务时,(前后读不通)
改为: 当该方法执行结束时关闭事务

P646
第二段灰色code下2行
"TxApect"改为"TxAspect"

P647
第二段灰色code下1行
Pointccut   把"c"划掉

P649
图8.9上两段,AOP方法在特定嵌入点
改为:AOP方法在特定切入点

P651
最下面一行
用于指定该增强处理将被织入
那些切入点 "那"改为"哪"


P652
最底下
程序清单:codes\08\8.4\Before\src\lee\Chinese.java
改为
程序清单:codes\08\8.4\Before\src\bean.xml

P654
注意方框下3行
使
用@AferThrowing Annotation时可..... "Afer"改为"After",该页最下面的灰色code上2行也是同样的问题

P656
5.After处理后的第四段:因此AfterReturning增强处理
改为:因此After增强处理


P657
6.Around增强处理第一段:AfterReturning增强处理既可在....
改为:Around增强处理既可在
....

P660
倒数第3行
[email=]"Order Annotation"改为"@Order[/email] Annotation"

P662
8.定义切入点 小节第一段:我们居然将那个切面表达式重复了4次!如果有一点需要修改切面表达式
改为:我们居然将那个切入点表达式重复了4次!如果有一点需要修改切入点表
达式

P667
最下面的灰色代码块上第三行:该属性的作用与前面的@AspectJ中的@orderAnnotation...
改为:该属性的作用与前面的@AspectJ中的@Order Annotation...

P674
注意框第二行:前提是有底层的应用服务器...
改为:前提是底层的应用服务器...

P683
灰色code下1行
"Schame"改为"Schema"

P698
8.7.2节上一行:HibernateCallBack
改为:HibernateCallback

P699
倒数第5行:如果当前线程已经存在一个非事务性的Session,是否需要重新创建一个此非事务性的Session。
改为:如果当前线程没有找到一个事务性的Session,是否需要重新创建一个非事务性的Session。

P711
灰色代码部分倒数第4行注释部分:<!-- 指定在txAdvice切入点应用txAdvice事务切面 -->
改为:<!-- 指定在leePointcut切
入点应用txAdvice事务切面 -->

P714
中间的灰色code下2行
....与实际应
用的数据不可能是同一个数据库,     "数据"改为"数据库"

P716
最下面的灰色code中的方法缺少"void"

P721
灰色code上面的几段文字中有5个"comupter"拼写错误

P721
第6行
由该工厂来负责创基IB实例 ,  "创基"改为"创建"

P724
2段灰色code上的程序清单中 文件的后缀名错误  把"......xml"后缀改为".java"

P727
第2段灰色code上1行
BetterFactoryFactory.java 改为"BetterPrintFactory.java"

P728
第一个程序清单:程序清单:codes\09\9.3\FactoryMethod\PrintFactory.java
改为:程序清单:codes\09\9.3\FactoryMethod\BetterPrintFactory.java


P728
图上面的灰色code中的方法必须
有"public"修饰


P729
图下第1行
OutFactoryFactory改为"OutputFactoryFactory"


P731
中间的灰色code下2行
.........当程序中创基BigImage时, "创"改为"创建"


P731
最下面的灰色code注释
//使用
抽象实体来初始化代理对象
改为 //使用被代理实体来
初始化代理对象


P732
第3行
在BigImage类的image()方法 "BigImage"改为"ImageProxy"

P733
最下面的灰色code上2行
(这个类通
常成为拦截器).........,分别同于开始........  把"成"改为"称" ,"同"改为"用"

P740
第3段灰色code上2行
"Contex"改为"Context"

P741
灰色代码上第三段,考虑该饭店有3个部分,
改为:考虑该饭店有3个部门,

P743
public Facade()
{
      Payment pay = new PaymentImpl();
      Cook cook = new CookImpl();
      Waiter waiter =
new WaiterImpl();
}
改为
public Facade()
{
       pay = new PaymentImpl();
       cook = new CookImpl();
       waiter = new WaiterImpl();
}


P743
文字部分第4行
Cutsomer类实现HavaDinner()  改为"Customer..... haveDinner
"

P744
中间代码段
query.setParameter(i , Object val)
应改为:

query.setParameter(i , args);

P748
最下面一行
observers.add(o),
根据相应的注释
改为: observers.remove(o);


P757
第一行
此时FacadeManagerImpl组建的...  "组建"改为"组件"

P761
第4行
....将导致控制变得臃肿,  "控制"改为"控制器"

P782
最下面一行
Manager get(String dept);
应改为:
Manager get(Integer id);


P799
<aop:config.../>配置元素里的注释:<!-- 指定在txAdvice切入点应用txAdvice事务切面 -->
改为:<!-- 指定在leePointcut切入点应
用txAdvice事务切面 -->

补充:
Struts2和struts2的问题
Java里所有包名都应该小写!这是常识,但第3章、第4章有些配置Struts2的地方,
都出现了org.
apache.Struts2...或org.apache.Struts 2...的错误,这些情况都是由于编辑查找、替换改错的,
因此全部改为org.apache.struts2
这种情况一律以光盘代码为准。


[ 本帖最后由 jlu_lamp_lamp 于 2011-2-23 14:29 编辑 ]

生命没有假期!
如果生命只剩下最后一秒,你可会想到我?

TOP

返回列表