在ssh2的开发过程中遇到一个很头疼的问题。struts2始终找不到action,在测试的工程里面有一处实例都能够找到action,可是我自己写的却始终找不到,一直报404错误。请求高手帮忙解决一下,是什么问题,我把相关的struts.xml、applicationContext.xml、web.xml所做的相关设置都贴出来,就大家帮忙看看是什么问题!1.web.xml
2.struts.xml
3.applicationContext.xml
2.struts.xml
3.applicationContext.xml
解决方案 »
- SSH框架中,是不是一个form 就必须有一个action
- |f|<1 0≤i≤10 救急
- PA.jar包是关于什么的?哪里有下载?
- hibernate的QBC外接连问题,帮忙看下
- 为什么我创建的JMS服务,别的计算机无法连接?
- 在STRUTS框架中使用VALIDATOR,如何在一个JSP里定义多种表单验证功能
- 在java里面调用vc的ocx控件.
- 路径问题 ClassLoader.getSystemResourceAsStream() Javapath CLASSPATH InputStream
- 操作 数据库 数据 的安全性
- 怎样向sql-server中存储时间?
- 关于使用LOG4J的日志输出
- myeclipse问题
web.xml: <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
jar包:
<action name="saveUserinfo" class="">这里的class不应该是类的完整限定名,而是你在spring中注入的saveUserinfoAction
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: An association from the table userinfo refers to an unmapped class: com.rzq.bean.Groupinfo
Caused by: org.hibernate.MappingException: An association from the table userinfo refers to an unmapped class: com.rzq.bean.Groupinfo
at org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1252)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1170)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1286)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1203)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:285)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2013-6-8 16:37:36 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2013-6-8 16:37:36 org.apache.catalina.core.StandardContext start
严重: Context [/mytest] startup failed due to previous errors
2013-6-8 16:37:36 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>还有我上面说的你改过来没有
换了过滤器,要换的jar包好多啊,除了要换你指的common-lang3-3.1.jar之外,还要更换struts2-core-2.2.3.jar和xwork-2.1.2各种报错,现在运行正常了。我的jar包都是老版本啊!继续求高手帮忙看看找不到struts2找不到action的问题!
我都是放在src目录下的啊!项目中有一个实例就可以用,新建的实例就用不了!
都改过来了,但是现在貌似页面的jsp页面也跟着报错了,按理说换了common-lang3-3.1是最新版了,不可能找不到stringUtil这个类啊。java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils换了过滤器,要换的jar包好多啊,除了要换你指的common-lang3-3.1.jar之外,还要更换struts2-core-2.2.3.jar和xwork-2.1.2各种报错,现在运行正常了。
都改过来了,但是现在貌似页面的jsp页面也跟着报错了,按理说换了common-lang3-3.1是最新版了,不可能找不到stringUtil这个类啊。java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils换了过滤器,要换的jar包好多啊,除了要换你指的common-lang3-3.1.jar之外,还要更换struts2-core-2.2.3.jar和xwork-2.1.2各种报错,现在运行正常了。jar 不要乱换 ,能运行就好 啦
我都是放在src目录下的啊!项目中有一个实例就可以用,新建的实例就用不了!也就是说现在struts.xml里有一个可以访问的,是不?那对照一下,看少配置什么了,因为你和spring整合了,所以原因可能很多。
我都是放在src目录下的啊!项目中有一个实例就可以用,新建的实例就用不了!也就是说现在struts.xml里有一个可以访问的,是不?那对照一下,看少配置什么了,因为你和spring整合了,所以原因可能很多。我的是整合好的,我前前后后对了一天了,都是一样的,所以就来这里求帮助了。
关键是不换不行啊。不换就报错。你那个过滤器需要新的struts2-core-2.2.3.jar,我老的2.0里面没有那个类,然后接着报错xwork版本又低了,又缺类,现在是正常运行了。struts2的页面标签库有不行了,需要用到原来的更换lang3之前lang的类。汗死。
<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
<s:textfield name="user.lastname" label="%{getText('lastname')}"></s:textfield>
<s:textfield name="user.age" label="%{getText('age')}"></s:textfield>
<s:submit></s:submit>
</s:form>
2、常用页面组件<form action="saveUserinfo">
<p><input type="text" name="T1" size="20"></p>
<p><input type="text" name="T2" size="20"></p>
<p><input type="text" name="T3" size="20"></p>
<p><input type="text" name="T4" size="20"></p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
3.action类中的业务逻辑 @Override
public String execute() throws Exception
{
System.out.println("---------------进入userinfoAction------------------"+this.userinfo.getUserName());
this.service.save(this.userinfo); return SUCCESS;
}我的意思是如何获取页面这个对象所对应的每一个值日?
<input type="text" name="T1" size="20">还是写成<p><input type="text" name="user.firstname" size="20">貌似是无效的
请看19楼我写的东西!普通的form中<input type="text" name="user.firstname" size="20">这样写不生效,已经失去struts2的特性,只能通过request去获取
请看19楼我写的东西!普通的form中<input type="text" name="user.firstname" size="20">这样写不生效,已经失去struts2的特性,只能通过request去获取主要是我觉得用struts2的网页标签用css样式不好控制,不美观!那如果这样的话,我struts2的action设置貌似就没有什么意义了!
<result name="success" type="redirect">listUserinfo.action</result>
<result name="input">/web/users/usersave.jsp</result>
</action>的class="saveUserinfoAction"不一致造成。我看是写的一样,但是有手复制了一下。结果就正确了。还有一个问题:
jsp页面中的属性怎么我获取的是空值啊?<s:form action="saveUserinfo">
<s:textfield name="userinfo.userId" label="用户名"></s:textfield>
<s:textfield name="userinfo.userName" label="姓 名"></s:textfield>
<s:textfield name="userinfo.userPassword" label="密 码"></s:textfield>
<s:textfield name="userinfo.userSex" label="性 别"></s:textfield>
<s:submit></s:submit>
</s:form>
我怎么取不到对应的属性值啊?