Eclipse编辑web.xml很卡

使用Eclipse {Version: 2018-12 (4.10.0)}

编辑 web.xml保存会很卡

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    version="4.0">
    <display-name>ABC</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

将XSD文件导入一样卡

图片说明

有什么方法可以解决这个问题吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
eclipse打开web.xml文件遇到问题,请大神帮忙

eclipse打开web.xml文件时,打开是这样的![图片说明](https://img-ask.csdn.net/upload/201607/17/1468763462_724026.jpg)

Eclipse 中Run按钮如何启动web.xml中设定的首页?

在Eclipse中,右键项目,选run as--> run on server, 浏览器默认打开在web.xml中设定的首页 。但当编辑器当前有打开任何页面时(反正不是在web.xml中设定的首页), 点击工具栏中的 三角按钮(run),浏览器打开的却是当前在编辑器中的当前页,请问如何设置eclipse, 才可以无论编辑器当前在编辑何页面,run按钮都只能打开web.xml中设定的那个首页而不是当前的编辑页? eclipse用的是neon版本,eclipse用的是9.0.

创建JavaEE项目时 选择创建web.xml配置文件 servlet还可以使用注解吗

环境:Tomcat8+JDK1.7+eclipse jee mars 在最初建JavaEE项目的时候,选择了自动生成web.xml。 但是再创建Servlet的时候使用了注解来代替在web.xml中的配置。这样还可以访问到servlet吗?可以的话,应该怎么来访问? 也就是web.xml可以和servlet注解一起来使用吗,为什么? 还有一个问题就是在创建JavaEE项目的时候,选择自动生成web.xml和不选择自动生成web.xml有什么不同。我说的意思是是不是在某个eclipse或者tomcat容器中生成相对于的配置,来说明是使用web.xml来配置还是使用servlet来配置?

在Eclipse中安装什么插件,才能实现MyEclipse中编辑web.xml的这种功能?

![图片说明](https://img-ask.csdn.net/upload/201705/11/1494476308_783788.jpg) MyEclipse中可视化编辑web.xml文件的这个工具很好用,谁知道在Eclipse中安装哪个插件也能实现这种功能

eclipse能不能像idea编辑xml自动提示类名?

之前看别人用idea编辑xml配置时会自动提示类名,想问下eclipse能不能像idea编辑xml自动提示类名?

eclipse编辑的jsp页面字体颜色一致的问题

大家遇到过这种情况没有,eclipse打开后发现jsp页面中的元素与要显示的内容的颜色都变成一样的了,还有js中的关键字与变量的颜色也都一样了,这样看起来很不爽啊,有没有遇到这种情况的 是怎么解决的呢? [b]问题补充:[/b] 补充一下哈,字体的设置都没有问题,并且jsp的打开方式也是正确的,当我新建一个页面 编辑的时候 颜色都是正常的,当我再次打开eclipse的时候,颜色就全变了。 [b]问题补充:[/b] 默认打开方式不是文本的,是jsp editor的 [b]问题补充:[/b] [img]/upload/attachment/112656/6453db9f-df6e-3f94-b1f2-40034d594ad2.jpg[/img] [b]问题补充:[/b] 就像上面的图片显示的那样 大家看看用什么办法可以解决呢 [b]问题补充:[/b] 曾经还原回最初的设置了,不过还是那样,郁闷透顶了!!!

myeclipse加载报表配置xml文件失败,项目无法正常运行,怎么解决?

![图片说明](https://img-ask.csdn.net/upload/201904/11/1554983047_497110.png) ```<?xml version="1.0" encoding="UTF-8"?> <resources xmlns="http://www.wabacus.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wabacus.com ../xsd/wabacus.resources.xsd"> <resource key="invalid.isnotempty"> <![CDATA[#label#不能为空]]> </resource> <resource key="invalid.number"> <![CDATA[#data#不是合法数字]]> </resource> <resource key="invalid.age"> <![CDATA[#data#不是有效年龄]]> </resource> <resource key="clickorderbypage1.header"> <![CDATA[<font color='#3366FF'><i> 点击<u>工号</u>、<u>中文名</u>、<u>英文名</u>、<u>性别</u>、<u>年龄</u>、<u>出生日期</u>列的数据标题可以进行排序 </i></font>]]> </resource> <resource key="colselectedpage1.footer"> <![CDATA[<font color='#FF0000'>说明:<font color='#0000FF'> 点击页面中最右边列的向右箭头或“下载Excel”链接,可以选择要显示/下载的列 </font></font>]]> </resource> <resource key="typepromptpage1.header"> <![CDATA[<font color='#3366FF'><i>其中<u>工号</u>查询条件采用任意位置匹配,<u>中文名</u>查询条件采用起始位置匹配</i></font>]]> </resource> <resource key="typepromptpage2.footer"> <![CDATA[<font color='#3366FF'><i>其中<u>工号</u>查询条件采用任意位置匹配,<u>姓名</u>查询条件采用起始位置匹配</i></font>]]> </resource> <resource key="typepromptpage3.footer"> <![CDATA[<font color='#3366FF'><i>其中<u>工号</u>提示列采用任意位置匹配,<u>中文名</u>提示列采用起始位置匹配</i></font>]]> </resource> <resource key="rowselectpage2.report1.footer"> <![CDATA[<font color='#3366FF'><i>通过按住Ctrl键或Shift键用鼠标点击记录行进行多选</i></font>]]> </resource> <resource key="masterslavepage3.report1.header"> <![CDATA[<font color='#3366FF'><i>点击“部门编号”查看部门员工列表,点击“部门名称”查看部门详细资料</i></font>]]> </resource> <resource key="masterslavepage3_2.report1.footer"> <![CDATA[<font color='#3366FF'><i>点击“部门编号”查看部门员工列表</i></font>]]> </resource> <resource key="masterslavepage3_1.report1.footer"> <![CDATA[<font color='#3366FF'><i>点击“工号”查看员工详细资料</i></font>]]> </resource> <resource key="interceptorpage1.footer"> <![CDATA[<font color='#3366FF'><i> 1、访问报表时查看服务器控制台,通过<report/>的子标签<interceptor/>中配置的拦截器会在控制台中打印信息;<br/> 2、年龄查询条件输入值只能在10到20范围之内,超出后会被前置动作提示出错。 </i></font>]]> </resource> <resource key="interceptorpage2.footer"> <![CDATA[<font color='#3366FF'><i> 1、访问报表时查看服务器控制台,通过<report/>的属性interceptor所引用的在资源文件中定义的拦截器会在控制台中打印信息;<br/> 2、年龄查询条件输入值只能在10到20范围之内,超出后会被前置动作提示出错。 </i></font>]]> </resource> <resource key="interceptorpage3.footer"> <![CDATA[<font color='#3366FF'><i> 1、访问报表时查看服务器控制台,通过<report/>的属性interceptor所引用的拦截器JAVA类会在控制台中打印信息;<br/> 2、年龄查询条件输入值只能在10到20范围之内,超出后会被前置动作提示出错。 </i></font>]]> </resource> <resource key="title.label">员工信息列表</resource> <resource key="sequence.label">序号</resource> <resource key="no.label">工号</resource> <resource key="group.label">个人信息</resource> <resource key="name.label">姓名</resource> <resource key="sex.label">性别</resource> <resource key="age.label">年龄</resource> <resource key="birthday.label">出生日期</resource> <resource key="salary.label">工资</resource> <resource key="joinindate.label">入职日期</resource> <resource key="condition.txtno.label">工号</resource> <resource key="condition.txtage.label">年龄</resource> <resource key="l10npage.report1.footer"> <![CDATA[<font color='#3366FF'><i> 1、这里演示的是静态配置信息的本地化,对于从数据库取出的动态数据,如果要进行本地化,请参看《Wabacus框架入门与提高》文档<br/> 2、为两个查询条件都配置了校验,校验出错信息也支持本地化,校验规则与上面“客户端/服务器端校验”演示的报表一致。 </i></font>]]> </resource> <resource key="otherpage3.report1.header"> <![CDATA[ <a href="#" onclick="viewSelectedRadioValues();">查看“选择一”列选中值</a>&nbsp;|&nbsp;<a href="#" onclick="viewSelectedCheckboxValues();">查看“选择二”列选中值</a> ]]> </resource> <resource key="otherpage4_2.report1.footer"> <![CDATA[<br/><br/><font color='#3366FF'><i> 这里演示的功能按钮只是测试,虽然是“添加”或“修改”按钮,但不能对报表数据进行编辑,关于数据编辑功能的演示,请参看“数据编辑篇” </i></font>]]> </resource> <resource key="reportborderlistpage1.report5.footer"> <![CDATA[<br/><font color='red'> 注意:通过<report/>标签的bordercolor属性只能改变数据部分表格的边框颜色,如果要同时改变标题部分和外层表格的边框颜色,则需要通过修改 wabacus_system.css文件中的.cls-data-th-list、.cls-data-td-list的样式定义实现。 </font>]]> </resource> <resource key="cellresizepage.report1.header"> <![CDATA[<br/><font color='#FF0000'> 请将鼠标放在数据标题列各单元格之间进行左右移动,调整列宽</font> </font>]]> </resource> <resource key="cellresizepage.report2.footer"> <![CDATA[<br/><font color='#3366FF'> <b>说明:</b>对于复杂表头的报表,只能对顶层分组所在单元格以及没有参与列分组的列所在单元格进行移动,比如在这复杂表头报表中:<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“工号”、“年龄”、“入职日期”三列</font>属于没有参与列分组的列,所以可以对它们所在单元格进行移动;<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“基本信息”分组</font>属于顶层分组,因为它不属于哪个分组的子分组,所以也可以对它所在单元格进行移动;<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“中文名”、“英文名”、“性别”三列</font>是参与了列分组的列,所以不能对它们所在单元格进行移动;<br/> &nbsp;&nbsp;&nbsp;&nbsp;<font color="red">“姓名”分组</font>不是顶层分组,因为它是父分组“基本信息”的一部分,所以不能对它所在单元格进行移动。 </font>]]> </resource> <resource key="celldragpage1.header"> <![CDATA[<br/><font color='#FF0000'> 请将鼠标放在数据标题列,点击后进行拖动</font> </font>]]> </resource> <resource key="interceptorpage2.report1.interceptor" type="com.wabacus.config.resource.InterceptorRes"> <interceptor> <imports> <import>com.wabacus.util.*</import> <import>java.util</import> </imports> <preaction> <![CDATA[ String age=rrequest.getStringAttribute("txtage",""); if(!age.equals("")) { try { int iage=Integer.parseInt(age); if(iage<10||iage>20) { rrequest.getWResponse().getMessageCollector().alert("输入的年龄:"+age+"起出范围,只能输入10到20之间的数字",null,true); } }catch(NumberFormatException nfe) { rrequest.getWResponse().getMessageCollector().alert("输入的年龄:"+age+"不是合法数字",null,true); } } System.out.println(new Date()+":::执行完前置动作------------------"); ]]> </preaction> <postaction> <![CDATA[ System.out.println(new Date()+":::执行完后置动作-------------------"); ]]> </postaction> </interceptor> </resource> <!-- --> <resource key="editablelistreportpage1.footer"> <![CDATA[<br/><br/><font color='#3366FF'><i> “省”、“市”、“县”三列为下拉框,且是关联下拉框</i></font>]]> </resource> <resource key="editabledetailpage2.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>注意:</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;<font color='#3366FF'> 1、在这种编辑方式中需要先点击“修改”按钮才能修改数据;<br/><br/> &nbsp;&nbsp;&nbsp;&nbsp; 2、因为此报表的“简介”列是大字段类型,如果是Oracle数据库,且采用的不是oracle10g的jdbc驱动,则可能不能正常的完成添加操作,需要将配置文件中此报表的 <insert/>标签配置的SQL语句:insert into ...后面加上where deptno=@{deptno__old},即变为如下形式: insert into tbl_department(guid=uuid{},@{deptno},@{deptname},@{manager},@{builtdate},@{performance},@{description}) where deptno=@{deptno__old};然后重新启动即可。 </font>]]> </resource> <resource key="editpartcolpage1.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>说明:</font><br/>&nbsp;&nbsp;&nbsp;&nbsp;<font color='#3366FF'> 1、修改数据时:“工号”、“姓名”、“所属部门”三列不允许修改<br/> &nbsp;&nbsp;&nbsp;&nbsp; 2、添加数据时,“性别”、“出生日期”两列不允许添加 </font>]]> </resource> <resource key="coldefaultvaluepage1.report1.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;&nbsp;&nbsp;“姓名”列默认值为“无名”;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“年龄”列默认值为60;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“出生日期”列默认值为1980-09-23<br/> &nbsp;&nbsp;&nbsp;&nbsp;“工资”列默认值为1000<br/> &nbsp;&nbsp;&nbsp;&nbsp;“省”列默认值为广东<br/> &nbsp;&nbsp;&nbsp;&nbsp;“市”列默认值为深圳<br/> &nbsp;&nbsp;&nbsp;&nbsp;“县”列默认值为福田<br/> </font>]]> </resource> <resource key="inputboxdefaultvaluepage1.report1.footer"> <![CDATA[<br/><br/></br> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;&nbsp;&nbsp;“姓名”列的输入框默认值为“无名”;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“年龄”列的输入框默认值为60;<br/> &nbsp;&nbsp;&nbsp;&nbsp;“出生日期”列的输入框默认值为1980-09-23<br/> &nbsp;&nbsp;&nbsp;&nbsp;“工资”列的输入框默认值为1000<br/> &nbsp;&nbsp;&nbsp;&nbsp;“省”列的输入框默认值为广东<br/> &nbsp;&nbsp;&nbsp;&nbsp;“市”列的输入框默认值为深圳<br/> &nbsp;&nbsp;&nbsp;&nbsp;“县”列的输入框默认值为福田<br/> </font>]]> </resource> <resource key="editablemasterslavepage1.report3.footer"> <![CDATA[<br/><br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;&nbsp;&nbsp; 1、“详细资料1”和“详细资料2”两个细览报表是两种不同编辑方式的细览报表,它们都依赖于“员工信息列表”报表。<br/> &nbsp;&nbsp;&nbsp;&nbsp; 2、“详细资料1”和“详细资料2”两个细览报表均配置为不允许修改“工号”列,其它列均允许修改。 </font>]]> </resource> <resource key="editableFormatListPage1.footer"> <![CDATA[<br/><br/><font color='#ff0000'>说明:</font><font color='#0000FF'>&nbsp;&nbsp;在只读模式时,将此报表的“工号”列格式化为一个超链接</font>]]> </resource> <resource key="editableFormatDetailPage1.footer"> <![CDATA[<br/><br/><font color='#ff0000'>说明:</font><font color="#0000ff">使用只读访问模式访问时将“部门编号”列格式化为一个超链接,使用默认访问模式时,将“部门经理”列格式化为一超链接</font>]]> </resource> <resource key="editableFormatDetailPage2.footer"> <![CDATA[<br/><br/><font color='#ff0000'>说明:</font><font color="#0000ff"> 使用只读访问模式访问时将“部门编号”列格式化为一个超链接,如果是添加记录模式,为部门编号赋默认值111111</font>]]> </resource> <resource key="savecallbackpage2.footer"> <![CDATA[<br/><br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;此报表配置了一个保存回调函数打印保存的数据,并且声明执行完此回调函数后不更新报表页面的显示,<br/> &nbsp;&nbsp;这对于保存后跳转到新页面比较有用,可以提高性能,因为这种情况没必要更新页面显示。 </font>]]> </resource> <resource key="popupsinglepage1.report1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> “兴趣爱好”列为弹出输入框窗口编辑框 </font>]]> </resource> <resource key="popupmultiplypage1.report1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> 通过弹出窗口选择了“兴趣爱好”列的值后,会同时设置“姓名”列和“部门”列的值 </font>]]> </resource> <resource key="pageinterceptorpage1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> 访问页面或操作页面上报表时,请查看控制台上各拦截器的打印信息,可以了解到不同类型、不同位置上的页面拦截器各方法的执行顺序 </font>]]> </resource> <resource key="fileuploadlistpage1.report1.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><br/> <font color='#0000FF'> &nbsp;&nbsp;1、“图片文件上传”是指上传后以<img/>标签显示出来的上传类型。<br/> &nbsp;&nbsp;2、如果要测试这里的文件上传功能,请先修改此报表配置中为此列配置的上传路径到合适路径 </font>]]> </resource> <resource key="fileuploadlistpage1.report2.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;1、“WEB文件上传”是指上传后能通过URL在浏览器中访问到,Wabacus框架在上传这种类型的文件时,会根据用户配置的rooturl属性构造出此文件的访问URL;<br/> &nbsp;&nbsp;2、如果要测试这里的文件上传功能,请先修改此报表配置中为此列配置的上传路径到合适路径 </font>]]> </resource> <resource key="fileuploadlistpage1.report3.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><br/><font color='#0000FF'> &nbsp;&nbsp;1、“普通文件上传”就是指一般的文件上传功能,Wabacus框架上传这种类型的文件时,会在上传后返回被上传文件在服务器中的绝对路径; &nbsp;&nbsp;2、如果要测试这里的文件上传功能,请先修改此报表配置中为此列配置的上传路径到合适路径 </font>]]> </resource> <resource key="fileuploadlistpage1.report4.footer"> <![CDATA[<br/> <font color='#ff0000'>说明:</font><font color='#0000FF'> “上传后文件改名”对上面三种类型的文件上传操作都有效,是指将文件上传到服务器后,框架自动对文件进行更名。<br/> &nbsp;&nbsp;更名的类型包括如下几种:<br/> &nbsp;&nbsp;&nbsp;&nbsp;1、常量字符串;<br/> &nbsp;&nbsp;&nbsp;&nbsp;2、{date}:以当前日期做为文件名;<br/> &nbsp;&nbsp;&nbsp;&nbsp;3、{time}:以当前时间做为文件名;<br/> &nbsp;&nbsp;&nbsp;&nbsp;4、{timestamp}:以当前日期时间的毫秒数做为文件名,可以保持每次上传的文件名不重复。 </font>]]> </resource> <resource key="clobpage1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>“简介”列即为大字符串类型字段。</font>]]> </resource> <resource key="formpartcoldetail1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><br/> <font color='#0000FF'> &nbsp;&nbsp;编辑时,“婚否”、“工资”、“所属部门”三列不允许修改;<br/> &nbsp;&nbsp;添加时,“英文名”、“入职日期”两列不允许输入数据 </font>]]> </resource> <resource key="formpartcollistpage1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><br/> <font color='#0000FF'> &nbsp;&nbsp;编辑时,“所属部门”、“省”、“市”、“县”四列不允许修改;<br/> &nbsp;&nbsp;添加时,“姓名”、“性别”两列不允许输入数据 </font>]]> </resource> <resource key="formcallbackdetailpage1.header"> <![CDATA[<br/><font color='#ff0000'>注意:</font> <font color='#0000FF'>如果要在照片列进行文件上传,请先修改此报表配置中为此列配置的上传路径到合适路径</font>]]> </resource> <resource key="formcallbacklistpage1.header"> <![CDATA[<br/><font color='#ff0000'>注意:</font> <font color='#0000FF'>如果要在照片列进行文件上传,请先修改此报表配置中为此列配置的上传路径到合适路径</font>]]> </resource> <resource key="masterslavepage1.report2.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font> <font color='#0000FF'>这里演示的主从关系是当主报表没有数据时,从报表仍然显示出来,这也是默认的主从关系</font>]]> </resource> <resource key="masterslavepage1.report4.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font> <font color='#0000FF'>这里演示的主从关系是当主报表没有数据时,从报表不显示出来</font>]]> </resource> <resource key="containerpermissionpage12.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上所有输入框都只读。</font>]]> </resource> <resource key="containerpermissionpage13.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上所有按钮都禁用,点击无效。</font>]]> </resource> <resource key="containerpermissionpage21.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上id为“vp1”的容器的标题授权为不显示出来。</font>]]> </resource> <resource key="containerpermissionpage41.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上id为“tab1”的tabpane容器配置了三个标签页显示三个报表,但第一个和第二个标签页的display权限设置为false,因此只显示了第三个标签页出来。</font>]]> </resource> <resource key="containerpermissionpage42.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font><font color='#0000FF'>此页面上id为“tab1”的tabpane容器配置了三个标签页显示三个报表,但第二个标签页的disabled权限设置为true,因此不能切换到这个标签页。</font>]]> </resource> <resource key="conditionrelatepage1.footer"> <![CDATA[<br/><font color='#ff0000'>说明:</font> <br><font color='#0000FF'>&nbsp;&nbsp;此页面共包括三个报表,其中报表一、报表二、报表三的“工号”查询条件关联,因为它们的此条件的name属性都是txtno</font> <br><font color='#0000FF'>&nbsp;&nbsp;报表一、报表三的“姓名”查询条件关联,因为它们的此条件的name属性都是txtname,但与报表二的“姓名”查询条件不关联,因为它的此查询条件的name为txtname1。</font> <br><font color='#0000FF'>&nbsp;&nbsp;报表一、报表三的“性别”查询条件不关联,因为它们的此条件的name属性不同</font> ]]> </resource> <resource key="Interceptor_saveinterceptorreport" type="com.wabacus.config.resource.InterceptorRes"> <interceptor> <imports> <import>java.util.*</import> </imports> <saveaction> <![CDATA[ List lstInsertData=rrequest.getLstInsertedData(rbean);//添加的记录集合 List lstInsertExternalVals=rrequest.getLstInsertedParamValues(rbean);//因为此报表为<insert/>配置了<external-values/> List lstUpdateData=rrequest.getLstUpdatedData(rbean);//修改的记录集合 List lstDeleteData=rrequest.getLstDeletedData(rbean);//删除的记录集合 if(lstInsertData!=null&&lstInsertData.size()>0||lstUpdateData!=null&&lstUpdateData.size()>0||lstDeleteData!=null&&lstDeleteData.size()>0) { System.out.println("--------------拦截器类型:资源项----------保存前置动作-------------------"); } Map mData; if(lstInsertData!=null&&lstInsertData.size()>0) {//当前在做添加数据的保存操作 Map mParamValues; for(int i=0;i<lstInsertData.size();i++) {//循环添加的每条记录 mData=(Map)lstInsertData.get(i); mParamValues=(Map)lstInsertExternalVals.get(i); if(mData==null) continue; System.out.println("第"+(i+1)+"条添加的记录:"); Iterator itKeys=mData.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mData.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); System.out.println("此条记录对应的<params/>定义的变量值:"); itKeys=mParamValues.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mParamValues.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); } } if(lstUpdateData!=null&&lstUpdateData.size()>0) {//当前在做修改数据的保存操作 for(int i=0;i<lstUpdateData.size();i++) { mData=(Map)lstUpdateData.get(i); if(mData==null) continue; System.out.println("第"+(i+1)+"条修改的记录:"); Iterator itKeys=mData.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mData.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); } } if(lstDeleteData!=null&&lstDeleteData.size()>0) {//当前在做删除数据的保存操作 for(int i=0;i<lstDeleteData.size();i++) { mData=(Map)lstDeleteData.get(i); if(mData==null) continue; System.out.println("第"+(i+1)+"条删除的记录:"); Iterator itKeys=mData.keySet().iterator(); while(itKeys.hasNext()) { String key=(String)itKeys.next(); String value=(String)mData.get(key); System.out.print("["+key+"="+value+"]"); } System.out.println(); } } return super.doSave(rrequest,rbean,editbean); ]]> </saveaction> </interceptor> </resource> <resource key="Interceptor_saveinterceptorperrowpage1" type="com.wabacus.config.resource.InterceptorRes"> <interceptor> <imports> <import>java.util.*</import> </imports> <saveaction-perrow> <![CDATA[ String message=""; ```

javac与eclipse编译的class文件不一致

搭建基线版本自动化,利用javac命令编译Java web项目,部署后无法程序无法启动,发现是javac与eclipse编译的class文件不一致,哪位大神帮忙解决下

做了一个简单的SSH应用,但启动tomcat时总抛NoClassDefFoundError异常

做了一个简单的SSH应用,但启动tomcat时总抛NoClassDefFoundError异常。 <br />会有<pre name="code" class="java">java.lang.ClassNotFoundException: javax.transaction.TransactionManager</pre> <br />各位一定要帮看看啊!(ssh未入门级) <br /> <br />开发工具:Eclipse3.2+Tomcat5.5+Mysql5.0 <br />建表 <br /><pre name="code" class="java">CREATE TABLE `people` ( `id` int(11) NOT NULL auto_increment, `name` varchar(100) default NULL, `location` varchar(100) default NULL, PRIMARY KEY (`id`) ) </pre> <br /> <br />首先,建立工程和package,以下是我的工程目录 <br />  action <br />      DeletePeopleAction.java     //删除人员action <br />      EditPeopleAction.java         //编辑人员action第一步,读取需要修改的人员资料 <br />       EditPeopleActionDo.java   //修改人员action <br />      ListPeopleAction.javaSave   //显示人员列表action <br />      SavePeopleAction.java         //新增人员action <br />      SearchPeopleAction.java     //查找人员action <br />dao <br />      IDAO.java    //数据库操作接口 <br />       StudentDAOImpl.java  //数据库操作实现 <br />domain <br />      AbstractPeople.java   //实体抽象类 <br />       People.hbm.xml         //数据库映射 <br />       People.java                 //实体类 <br />service <br />      IService.java   //服务层接口 <br />       StudentManagerImpl.java   //服务层实现 <br />util <br />     Character.java   //字符编码过滤器 <br />      PageSupport.java   //分页 <br />applicationContext.xml   //Spring配置文件(hibernate部分和Service部分) <br /> <br />JSP:不详细些了。 <br />   addStudent.jsp <br />   editStudent.jsp <br />   searchList.jsp <br />   searchStudent.jsp <br />   studentList.jsp <br /> <br />我觉得问题就出在 Spring 的xml部署上, <br />或者是我引入的包有冲突,要么就是根本不对。 <br />下面是应用的配置信息: <br />1.web.xml <br /><pre name="code" class="java"><!----> &lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt; &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;/WEB-INF/classes/applicationContext.xml&lt;/param-value&gt; &lt;/context-param&gt; &lt;resource-ref&gt; &lt;description&gt;SqlServer Datasource example&lt;/description&gt; &lt;res-ref-name&gt;jdbc/StudentManager&lt;/res-ref-name&gt; &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt; &lt;res-auth&gt;Container&lt;/res-auth&gt; &lt;/resource-ref&gt; &lt;filter&gt; &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt; &lt;filter-class&gt; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter &lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;singleSession&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;hibernateFilter&lt;/filter-name&gt; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;servlet&gt; &lt;servlet-name&gt;SpringContextServlet&lt;/servlet-name&gt; &lt;servlet-class&gt; org.springframework.web.context.ContextLoaderServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet&gt; &lt;servlet-name&gt;SpringLog4jConfigServlet&lt;/servlet-name&gt; &lt;servlet-class&gt; org.springframework.web.util.Log4jConfigServlet &lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet&gt; &lt;servlet-name&gt;web&lt;/servlet-name&gt; &lt;servlet-class&gt; org.springframework.web.servlet.DispatcherServlet &lt;/servlet-class&gt; &lt;/servlet&gt; &lt;servlet&gt; &lt;servlet-name&gt;action&lt;/servlet-name&gt; &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;config&lt;/param-name&gt; &lt;param-value&gt;/WEB-INF/struts-config.xml&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; &lt;param-value&gt;2&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;detail&lt;/param-name&gt; &lt;param-value&gt;2&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;2&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;action&lt;/servlet-name&gt; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;/WEB-INF/jsp/index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;taglib&gt; &lt;taglib-uri&gt;/WEB-INF/struts-bean.tld&lt;/taglib-uri&gt; &lt;taglib-location&gt;/WEB-INF/struts-bean.tld&lt;/taglib-location&gt; &lt;/taglib&gt; &lt;taglib&gt; &lt;taglib-uri&gt;/WEB-INF/struts-html.tld&lt;/taglib-uri&gt; &lt;taglib-location&gt;/WEB-INF/struts-html.tld&lt;/taglib-location&gt; &lt;/taglib&gt; &lt;taglib&gt; &lt;taglib-uri&gt;/WEB-INF/struts-logic.tld&lt;/taglib-uri&gt; &lt;taglib-location&gt;/WEB-INF/struts-logic.tld&lt;/taglib-location&gt; &lt;/taglib&gt; &lt;taglib&gt; &lt;taglib-uri&gt;/WEB-INF/struts-nested.tld&lt;/taglib-uri&gt; &lt;taglib-location&gt;/WEB-INF/struts-nested.tld&lt;/taglib-location&gt; &lt;/taglib&gt; &lt;/web-app&gt; </pre> <br /> <br />2.struts-config.xml <br /><pre name="code" class="java"><!----> &lt;struts-config&gt; &lt;data-sources&gt; &lt;form-beans&gt; &lt;form-bean name="people" type="domain.People"&gt;&lt;/form-bean&gt; &lt;/form-beans&gt; &lt;global-exceptions&gt; &lt;global-forwards&gt; &lt;action-mappings&gt; &lt;action path="/savePeople" name="people" type="action.SavePeopleAction" scope="session" parameter="method"&gt; &lt;forward name="success" path="/listPeople.do"&gt;&lt;/forward&gt; &lt;/action&gt; &lt;action path="/listPeople" name="people" type="action.ListPeopleAction"&gt; &lt;forward name="success" path="/studentList.jsp"&gt;&lt;/forward&gt; &lt;/action&gt; &lt;action path="/deletePeople" name="people" type="action.DeletePeopleAction"&gt; &lt;forward name="success" path="/studentList.jsp"&gt;&lt;/forward&gt; &lt;/action&gt; &lt;action path="/editPeople" name="people" type="action.EditPeopleAction"&gt; &lt;forward name="success" path="/editStudent.jsp"&gt;&lt;/forward&gt; &lt;/action&gt; &lt;action path="/editPeopleDo" name="people" type="action.EditPeopleActionDo"&gt; &lt;forward name="success" path="/studentList.jsp"&gt;&lt;/forward&gt; &lt;/action&gt; &lt;action path="/searchPeople" name="people" type="action.SearchPeopleAction"&gt; &lt;forward name="success" path="/searchList.jsp"&gt;&lt;/forward&gt; &lt;/action&gt; &lt;action path="/test" name="people" type="action.Test"&gt;&lt;/action&gt; &lt;/action-mappings&gt; &lt;controller locale="true"&gt; &lt;message-resources parameter=""&gt; <!----> &lt;/struts-config&gt; </pre> <br /> <br /> <br />3.applicationContext.xml <br /><pre name="code" class="java"><!----> &lt;beans&gt; <!----> &lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" depends-on="sessionFactory"&gt; &lt;property name="sessionFactory"&gt; &lt;ref bean="sessionFactory"&gt; &lt;/property&gt; &lt;/bean&gt; &lt;bean id="studentManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&gt; &lt;property name="transactionManager"&gt; &lt;ref bean="transactionManager"&gt;&lt;/ref&gt; &lt;/property&gt; &lt;property name="target"&gt; &lt;bean class="service.StudentManagerImpl"&gt; &lt;property name="studentDAO"&gt; &lt;ref bean="StudentDAO"&gt; &lt;/property&gt; &lt;/bean&gt; &lt;/property&gt; &lt;property name="transactionAttributes"&gt; &lt;props&gt; &lt;prop key="save*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt; &lt;prop key="list*"&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt; &lt;prop key="delete*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt; &lt;prop key="get*"&gt;PROPAGATION_REQUIRED,readOnly&lt;/prop&gt; &lt;prop key="edit*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt; &lt;prop key="search*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; &lt;property name="proxyTargetClass"&gt; &lt;value&gt;true&lt;/value&gt; &lt;/property&gt; &lt;/bean&gt; <!----> &lt;bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt; &lt;property name="driverClassName"&gt; &lt;value&gt;com.mysql.jdbc.Driver&lt;/value&gt; &lt;/property&gt; &lt;property name="url"&gt; &lt;value&gt;jdbc:mysql://localhost:3306/dbjee&lt;/value&gt; &lt;/property&gt; &lt;property name="username"&gt; &lt;value&gt;root&lt;/value&gt; &lt;/property&gt; &lt;property name="password"&gt; &lt;value&gt;123456&lt;/value&gt; &lt;/property&gt; &lt;/bean&gt; <!----> &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt; &lt;property name="dataSource"&gt; &lt;ref local="dataSource"&gt; &lt;/property&gt; &lt;property name="hibernateProperties"&gt; &lt;props&gt; &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/prop&gt; &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt; &lt;prop key="hibernate.cache.use_query_cache"&gt;true&lt;/prop&gt; &lt;prop key="hibernate.cache.provider_class"&gt; org.hibernate.cache.HashtableCacheProvider&lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; <!----> &lt;property name="mappingResources"&gt; &lt;list&gt; &lt;value&gt;domain/People.hbm.xml&lt;/value&gt; &lt;/list&gt; &lt;/property&gt; &lt;/bean&gt; &lt;bean id="StudentDAO" class="dao.StudentDAOImpl"&gt; &lt;property name="sessionFactory"&gt; &lt;ref local="sessionFactory"&gt; &lt;/property&gt; &lt;/bean&gt; &lt;/beans&gt; </pre> <br /> <br />4.People.hbm.xml <br /><pre name="code" class="java"><!----> <!----> &lt;hibernate-mapping package="domain"&gt; &lt;class name="People" table="people"&gt; &lt;id name="id" type="java.lang.Integer"&gt; &lt;column name="id"&gt; &lt;generator class="increment"&gt;&lt;/generator&gt; &lt;/id&gt; &lt;property name="name" type="java.lang.String"&gt; &lt;column name="name" length="100"&gt; &lt;/property&gt; &lt;property name="location" type="java.lang.String"&gt; &lt;column name="location" length="100"&gt; &lt;/property&gt; &lt;/class&gt; &lt;/hibernate-mapping&gt; </pre> <br /> <br /> <br /><span style="font-size: large;">附件里是我引入的jar包。 <br />希望各位能帮帮忙,困扰我2天,一直出不来。</span> <br /> <br />最后把启动Tomcat时报的错误也贴出来。 <br /><pre name="code" class="java">严重: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager java.lang.NoClassDefFoundError: javax/transaction/TransactionManager at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.&lt;init&gt;(CachedIntrospectionResults.java:149) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:85) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:234) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:192) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:176) at org.springframework.beans.BeanWrapperImpl.&lt;init&gt;(BeanWrapperImpl.java:129) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:491) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:366) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:330) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190) at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83) at javax.servlet.GenericServlet.init(GenericServlet.java:212) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 55 more 2008-11-14 20:08:31 org.apache.catalina.core.ApplicationContext log 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager java.lang.NoClassDefFoundError: javax/transaction/TransactionManager at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.&lt;init&gt;(CachedIntrospectionResults.java:149) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:85) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:234) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:192) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:176) at org.springframework.beans.BeanWrapperImpl.&lt;init&gt;(BeanWrapperImpl.java:129) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:491) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:366) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:330) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190) at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83) at javax.servlet.GenericServlet.init(GenericServlet.java:212) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) Caused by: java.lang.ClassNotFoundException: javax.transaction.TransactionManager at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 55 more 2008-11-14 20:08:31 org.apache.catalina.core.StandardContext loadOnStartup 严重: Servlet /SSHDemo threw load() exception java.lang.ClassNotFoundException: javax.transaction.TransactionManager at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.&lt;init&gt;(CachedIntrospectionResults.java:149) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:85) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:234) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:192) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:176) at org.springframework.beans.BeanWrapperImpl.&lt;init&gt;(BeanWrapperImpl.java:129) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:491) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:366) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:330) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321) at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139) at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:252) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:190) at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83) at javax.servlet.GenericServlet.init(GenericServlet.java:212) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022) at org.apache.catalina.core.StandardHost.start(StandardHost.java:736) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:448) at org.apache.catalina.core.StandardServer.start(StandardServer.java:700) at org.apache.catalina.startup.Catalina.start(Catalina.java:552) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 2008-11-14 20:08:32 org.apache.coyote.http11.Http11BaseProtocol start 信息: Starting Coyote HTTP/1.1 on http-8888 2008-11-14 20:08:32 org.apache.jk.common.ChannelSocket init </pre><br /><strong>问题补充</strong><br /><div class="quote_title">zzxplayful 写道</div><div class="quote_div">没有这个包 <br />java.lang.ClassNotFoundException: javax.transaction.TransactionManager  </div> <br />这段异常我看得懂, <br />包括下面的: <br /><pre name="code" class="java">org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager</pre> <br /> <br />都看得懂,我想知道的是解决办法。 <br />比如 <br />javax.transaction.TransactionManager <br />在什么包里? <br />要怎样解决?<br /><strong>问题补充</strong><br /><div class="quote_title">fywcc 写道</div><div class="quote_div">这个是spring里面的  你把SPRING的jar包重新覆盖进去试试</div> <br /> <br />我在Spring包里看了啊, <br />源码都是以 org.springframework.×××× 开始的啊, <br />没有 javax.transcation.** 啊, <br />怎么办?还是需要什么别的包,要么是我的包冲突了。 <br /> <br />我引入了: <br />antlr <br />commons-beanutils.jar <br />commons-digester.jar <br />commons-fileupload.jar <br />commons-logging.jar <br />commons-validator.jar <br />jakarta-oro.jar <br />struts.jar <br /> <br />spring.jar <br /> <br />hibernate3.jar<br /><strong>问题补充</strong><br /><div class="quote_title">jones 写道</div><div class="quote_div">放入jta.jar就行了,找找吧,spring里面应该有,要不就是Hibernate里面有</div> <br />谢谢你。 <br />我把缺少的包都放上了,终于启动Tomcat时候不抛异常,而且也能打开welcome页面了。 <br /> <br />但还有其他问题,明天搞。 <br /> <br />第一次搞SSH,多谢指点啊!

淘淘商城运行users.jsp页面出现400错误。

![图片说明](https://img-ask.csdn.net/upload/201909/12/1568267628_637428.png) 上面的是项目的的文件列表。 cn.itcast.usermanage.controller包 PageController.java文件代码 ``` package cn.itcast.usermanage.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * 通用的页面跳转逻辑 * * @author * */ @Controller @RequestMapping("page") public class PageController { /** * 具体的跳转页面逻辑 -- test4 * * @param pageName * @return 视图名 */ @RequestMapping(value = "{pageName}", method = RequestMethod.GET) public String toPage(@PathVariable("pageName") String pageName) { return pageName; } } ``` mybatis.xml代码 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <plugins> <!-- 分页助手 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true" /> </plugin> <!-- 通用mapper --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 --> <property name="IDENTITY" value="MYSQL" /> <!--通用Mapper接口,多个通用接口用逗号隔开 --> <property name="mappers" value="com.github.abel533.mapper.Mapper" /> </plugin> </plugins> </configuration> ``` spring文件代码区 applicationContext-mybatis.xml文件代码区 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <plugins> <!-- 分页助手 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true" /> </plugin> <!-- 通用mapper --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 --> <property name="IDENTITY" value="MYSQL" /> <!--通用Mapper接口,多个通用接口用逗号隔开 --> <property name="mappers" value="com.github.abel533.mapper.Mapper" /> </plugin> </plugins> </configuration> ``` applicationContext-transaction.xml代码区 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <plugins> <!-- 分页助手 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true" /> </plugin> <!-- 通用mapper --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 --> <property name="IDENTITY" value="MYSQL" /> <!--通用Mapper接口,多个通用接口用逗号隔开 --> <property name="mappers" value="com.github.abel533.mapper.Mapper" /> </plugin> </plugins> </configuration> ``` applicationContext.xml代码区 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <plugins> <!-- 分页助手 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true" /> </plugin> <!-- 通用mapper --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 --> <property name="IDENTITY" value="MYSQL" /> <!--通用Mapper接口,多个通用接口用逗号隔开 --> <property name="mappers" value="com.github.abel533.mapper.Mapper" /> </plugin> </plugins> </configuration> ``` itcast-usermanage-servlet.xml代码区 ``` <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <plugins> <!-- 分页助手 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true" /> </plugin> <!-- 通用mapper --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 --> <property name="IDENTITY" value="MYSQL" /> <!--通用Mapper接口,多个通用接口用逗号隔开 --> <property name="mappers" value="com.github.abel533.mapper.Mapper" /> </plugin> </plugins> </configuration> ``` web.xml文件 ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>itcast-usermanage</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/applicationContext*.xml</param-value> </context-param> <!--Spring的ApplicationContext 载入 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 编码过滤器,以UTF8编码 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 解决PUT请求无法提交表单数据的问题 --> <filter> <filter-name>HttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> </filter> <filter-mapping> <filter-name>HttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 将POST请求转化为DELETE或者是PUT 要用_method指定真正的请求方法 --> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置SpringMVC框架入口 --> <servlet> <servlet-name>itcast-usermanage</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/itcast-usermanage-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>itcast-usermanage</servlet-name> <!-- 可行:/、*.xxx、/xxx/* 不行:/* --> <url-pattern>/rest/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- ________________________________ --> <context-param> <param-name>spring.profiles.active</param-name> <param-value>dev</param-value> </context-param> <context-param> <param-name>spring.profiles.default</param-name> <param-value>dev</param-value> </context-param> <context-param> <param-name>spring.liveBeansView.mbeanDomain</param-name> <param-value>dev</param-value> </context-param> <!-- ________________________________ --> </web-app> ``` 还有的就是,我的tomcat默认是localhost:8080 运行tomcat报错图片 ![图片说明](https://img-ask.csdn.net/upload/201909/12/1568267939_567846.png) 求大佬帮我看看那里出了问题,找了一天了。还是没找到那里有问题!! 一直是400错误! users.jsp代码 ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>会员管理系统</title> <link rel="stylesheet" type="text/css" href="/js/jquery-easyui-1.4/themes/default/easyui.css" /> <link rel="stylesheet" type="text/css" href="/js/jquery-easyui-1.4/themes/icon.css" /> <script type="text/javascript" src="/js/jquery-easyui-1.4/jquery.min.js"></script> <script type="text/javascript" src="/js/jquery-easyui-1.4/jquery.easyui.min.js"></script> <script type="text/javascript" src="/js/jquery-easyui-1.4/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="/js/common.js"></script> </head> <body> <div> <table class="easyui-datagrid" id="userList" title="会员列表" data-options="singleSelect:false,collapsible:true,pagination:true,url:'/user/list',method:'post',pageSize:5,toolbar:toolbar,pageList:[2,5,10]"> <thead> <tr> <th data-options="field:'ck',checkbox:true"></th> <th data-options="field:'id',width:60">ID</th> <th data-options="field:'userName',width:200">用户名</th> <th data-options="field:'name',width:100">姓名</th> <th data-options="field:'age',width:100">年龄</th> <th data-options="field:'sex',width:80,align:'right',formatter:formatSet">性别</th> <th data-options="field:'birthday',width:80,align:'right',formatter:formatBirthday">出生日期</th> <th data-options="field:'created',width:130,align:'center',formatter:formatDate">创建日期</th> <th data-options="field:'updated',width:130,align:'center',formatter:formatDate">更新日期</th> </tr> </thead> </table> </div> <div id="userAdd" class="easyui-window" title="新增会员" data-options="modal:true,closed:true,iconCls:'icon-save',href:'/user/page/add'" style="width:800px;height:600px;padding:10px;"> The window content. </div> <script type="text/javascript"> function formatDate(val,row){ var now = new Date(val); return now.format("yyyy-MM-dd hh:mm:ss"); } function formatBirthday(val,row){ var now = new Date(val); return now.format("yyyy-MM-dd"); } function formatSet(val,row){ if(val == 1){ return "男"; }else if(val == 2){ return "女"; }else{ return "未知"; } } function getSelectionsIds(){ var userList = $("#userList"); var sels = userList.datagrid("getSelections"); var ids = []; for(var i in sels){ ids.push(sels[i].id); } ids = ids.join(","); return ids; } var toolbar = [{ text:'新增', iconCls:'icon-add', handler:function(){ $('#userAdd').window('open'); } },{ text:'编辑', iconCls:'icon-edit', handler:function(){ $.messager.alert('提示','该功能由学员自己实现!'); } },{ text:'删除', iconCls:'icon-cancel', handler:function(){ var ids = getSelectionsIds(); if(ids.length == 0){ $.messager.alert('提示','未选中用户!'); return ; } $.messager.confirm('确认','确定删除ID为 '+ids+' 的会员吗?',function(r){ if (r){ $.post("/user/delete",{'ids':ids}, function(data){ if(data.status == 200){ $.messager.alert('提示','删除会员成功!',undefined,function(){ $("#userList").datagrid("reload"); }); } }); } }); } },'-',{ text:'导出', iconCls:'icon-remove', handler:function(){ var optins = $("#userList").datagrid("getPager").data("pagination").options; var page = optins.pageNumber; var rows = optins.pageSize; $("<form>").attr({ "action":"/user/export/excel", "method":"POST" }).append("<input type='text' name='page' value='"+page+"'/>") .append("<input type='text' name='rows' value='"+rows+"'/>").submit(); } }]; </script> </body> </html> ``` ![图片说明](https://img-ask.csdn.net/upload/201909/16/1568593584_158545.png)

使用postman问题 404错误

我第一次用postman测接口 url:http://localhost:8080/hhv2/interface/getMyRolls 输入:{ "head": { "deviceId":"deviceId", "os":1, "token":"", }, "body":{ "rows": "10", "page":"10", "type":"1", } } 然后send 就报404错误是哪错了? <style> .code { border: 1px solid #ccc; background: #efefef; font-size: 16px; } .propNS { color: #660E7A } .propTag { color: #000080 } .propName { color: #0000ff; } .propValue{ color: #008000 } </style> <div style="height: 100%; margin: 14px 20px 0 20px; overflow-y: auto"> <div style="background: pink; margin-right: 50px; padding: 10px; text-align: center;"> <div>404 error!请求地址有误! </div> <div>请参照下面的步骤检查你的项目。</div> </div> <div> <h5>代码生成前,配置相关文件</h5> </div> <div style="margin-right: 50px;"> <ul> <li>生成代码包的路径(jeecg_config.properties): <pre class="code"> <span class="propTag">bussi_package</span>= <span class="propValue">com.buss</span> // 生成代码的包前缀 </pre> </li> <li>代码生成界面的配置: <ol> <li>表名: <span class="propValue">guoming_test</span>; </li> <li>包名: <span class="propValue">guoming</span>; </li> <li>代码分层风格: <span class="propValue">代码分层</span>; </li> </ol> </li> </ul> </div> <div> <h5>代码生成后,编辑配置文件</h5> </div> <div style="margin-right: 50px;"> <ul> <li> 加载Controller(spring-mvc.xml) <pre class="code"> &lt; <span class="propNS">context</span> <span class="propTag">:component-scan</span> <span class="propName">base-package=</span> <span class="propValue">"com.buss.*"</span>&gt; &lt; <span class="propNS">context</span> <span class="propTag">:exclude-filter</span> <span class="propName">type=</span> <span class="propValue">"annotation" expression="org.springframework.stereotype.Service"</span> /&gt; &lt;/ <span class="propNS">context</span> <span class="propTag">:component-scan</span>&gt; </pre> </li> <li> 加载service(spring-mvc-hibernate.xml) <pre class="code"> &lt;

tomcat可以打开.html但是打开.jsp的时候浏览器显示错误。求教

![图片说明](https://img-ask.csdn.net/upload/201707/23/1500782253_801768.png) ![图片说明](https://img-ask.csdn.net/upload/201707/23/1500782265_885187.png) 我是照着视屏上面做的,也知道jsp是要在tomcat里面转换,第一次不知道怎么编辑答案,就在下面自问自答了一条作为补充 我已经建立了web连接,是在浏览器上面127.0.0.1:8888/testeclipse下运行的 tomcat目录如下: ![图片说明](https://img-ask.csdn.net/upload/201707/23/1500794058_505501.png) ![图片说明](https://img-ask.csdn.net/upload/201707/23/1500794078_8731.png) 这个是我的xml配置文件写的东西

没找到问题在哪!!大神帮忙看一下代码(JSP使用JSTL的c:forEach标签显示数据怎么不管用

``` <form name="myform" method="post" action="newstypeservlet?op=batchDelete"> <table border="1"> <tr> <th>编号</th> <th>类型名</th> <th>编辑</th> <th>删除</th> </tr> <c:forEach items="${requestScope.newsTypeList }" var="newsType" varStatus="status"> <tr style="background-color: ${status.index%2==0?'red':'green' } "> <td> <input type="checkbox" name="ids" value="${newsType.id }"/> ${newsType.id } </td> <td>${newsType.typeName }</td> <td><a href="newstypeservlet?op=toEdit&id=${newsType.id }">编辑</a></td> <td><a href="newstypeservlet?op=delete&id=${newsType.id }">删除</a></td> </tr> </c:forEach> <tr> <td colspan="4" > <input type="button" value="批量删除" onclick="checkSelected()"/> </td> </tr> </table> </form> ``` Servlet里的代码: ``` protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // System.out.println("进入sevlet"); request.setCharacterEncoding("UTF-8");// 解决Post提交时的乱码问题 String op = request.getParameter("op");// 注意:此处的JSP页面不放在根目录下,Servlet就无法接收到页面传来的数据,因为web.xml配置信息无法覆盖 if ("add".equals(op)) { addNewsType(request, response); } else if ("list".equals(op)) { listNewsType(request, response); } else if ("batchDelete".equals(op)) { batchDelete(request, response); } else if ("delete".equals(op)) { deleteById(request, response); } } // 新闻列表 private void listNewsType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { NewsTypeService newsTypeService = new NewsTypeService(); List<NewsType> newsTypeList = newsTypeService.findAll(); request.setAttribute("newsTypeList", newsTypeList); request.getRequestDispatcher("../listNewsType.jsp").forward(request, response); } private void deleteById(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { PrintWriter out = response.getWriter(); String idStr = request.getParameter("id"); if (idStr == null || "".equals(idStr)) { out.write("<script>alert('密码不能为空');history.back();</script>"); return; } int id = Integer.parseInt(idStr); NewsTypeService newsTypeService = new NewsTypeService(); newsTypeService.delete(id); // 删除数据后,返回列表 listNewsType(request, response); } private void batchDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String[] ids = request.getParameterValues("ids"); NewsTypeService newsTypeService = new NewsTypeService(); newsTypeService.batchDelete(ids); // 删除数据后,返回列表 listNewsType(request, response); } ``` service代码: ``` public class NewsTypeService { public int save(NewsType newsType) { return new NewsTypeDao().save(newsType); } public int batchDelete(String[] ids) { return new NewsTypeDao().batchDelete(ids); } public List<NewsType> findAll() { return new NewsTypeDao().findAll(); } public int delete(int id) { return new NewsTypeDao().delete(id); } ``` DAO里的代码 ``` public class NewsTypeDao { DBUtil dbUtil = new DBUtil(); // 保存新闻类型 public int save(NewsType newsType) { String sql = "insert into newstype(typeName) values (?)"; Object[] params = { newsType.getTypeName() }; return dbUtil.executeUpdate(sql, params); // executeUpdate的返回值是一个整数,指示受影响的行数(即更新计数) } public List<NewsType> findAll() { List<NewsType> newsTypeList = new ArrayList<NewsType>(); String sql = "select * from newstype"; ResultSet rs = dbUtil.executeQuery(sql, null); try { while (rs.next()) { NewsType newsType = new NewsType(rs.getInt("id"), rs.getString("typeName")); newsTypeList.add(newsType); } } catch (SQLException e) { e.printStackTrace(); return newsTypeList; } finally { dbUtil.closeAll(); } return newsTypeList; } /** * 批量删除 * * @param ids * 指定的ID集合 * @return */ public int batchDelete(String[] ids) { // TODO Auto-generated method stub String sql = "delete from newstype where id in(?)"; Object[] params = { ArrayUtil.array2String(ids, ",") }; return dbUtil.executeUpdate(sql, params); } /** * 根据Id进行删除 * * @param id * @return */ public int delete(int id) { String sql = "delete from newsType where id=?"; Object[] params = { id }; return dbUtil.executeUpdate(sql, params); } ## # }谢谢大神**** ```

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

删库了,我们一定要跑路吗?

在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回。 在 mysql 数据库中,我们知道 binlog 日志记录了我们对数据库的所有操作,所以 binlog 日志就是我们自救的利器。 接下来就来开启程序员自救之路。 想要自救成功,binlog 这把利器一定要好,在自己之前,我们一定要确定我们有 binlog 这把利器,以下就是确保有 bi...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

现代的 “Hello, World”,可不仅仅是几行代码而已

作者 |Charles R. Martin译者 | 弯月,责编 | 夕颜头图 |付费下载自视觉中国出品 | CSDN(ID:CSDNnews)新手...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

程序员毕业去大公司好还是小公司好?

虽然大公司并不是人人都能进,但我仍建议还未毕业的同学,尽力地通过校招向大公司挤,但凡挤进去,你这一生会容易很多。 大公司哪里好?没能进大公司怎么办?答案都在这里了,记得帮我点赞哦。 目录: 技术氛围 内部晋升与跳槽 啥也没学会,公司倒闭了? 不同的人脉圈,注定会有不同的结果 没能去大厂怎么办? 一、技术氛围 纵观整个程序员技术领域,哪个在行业有所名气的大牛,不是在大厂? 而且众所...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年1月份最新版)

深入了解IT/互联网行业及岗位,请参阅通用IT/互联网岗位招聘计划(最新全岗版)。 深入了解职业晋升及学习路线,请参阅最优职业晋升路线和课程学习指南(最新全栈版)。 内容导航: 1、TIOBE排行榜 2、总榜(2020年1月份) 3、本月前三名 4、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

01、Java入门(Getting Started);02、集成开发环境(IDE);03、项目结构(Eclipse JavaProject);04、类和对象(Classes and Objects);05:词法结构(Lexical Structure);06:数据类型和变量(Data Type and Variables);07:运算符(Operators);08:控制流程语句(Control Flow Statements);

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

技术大佬:我去,你竟然还在用 try–catch-finally

二哥,你之前那篇 我去 switch 的文章也特么太有趣了,读完后意犹未尽啊,要不要再写一篇啊?虽然用的是 Java 13 的语法,对旧版本不太友好。但谁能保证 Java 不会再来一次重大更新呢,就像 Java 8 那样,活生生地把 Java 6 拍死在了沙滩上。Java 8 是香,但早晚要升级,我挺你,二哥,别在乎那些反对的声音。 这是读者 Alice 上周特意给我发来的信息,真令我动容。的...

立即提问
相关内容推荐