SSH搭建好了之后开始测试Struts的Action 转到自己写的404页面

问题描述

按照李刚的struts讲义写的action 功能是输入用户名密码之后跳转到另外的jsp页面.但是每次都出来404页面.请问是哪边配置有问题? 如果另外ssh框架也没建好还请指正.以下是代码<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"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>Archetype Created Web Application</display-name> <!-- 以下3项参数与log4j的配置相关 --> <listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><context-param><param-name>log4jConfigLocation</param-name><param-value>/WEB-INF/log4j.properties</param-value></context-param><context-param><param-name>log4jRefreshInterval</param-name><param-value>60000</param-value></context-param> <!-- 默认情况下,会加载WEB-INF/applicationContext.xml这个文件,我们可以通过配置 contextConfigLocation参数改变配置文件的路径 --> <!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的Spring-Context loader --><!-- 使容器启动时,自动加载applicationContext配置,因为它实现了ServletContextListener这个接口,容器启动时会自动执行它实现的方法。 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:*/ApplicationContext.xml,*/action-Servlet.xml</param-value></context-param> <!-- 加载spring容器 --><!-- 整合struts 加入中心拦截器 --><filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> <init-param> <param-name>struts.action.extendion</param-name> <param-value>action</param-value> </init-param> </filter> <!-- <filter><filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>--> <!-- Struts --><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet> <!-- session超时定义,单位为分钟 --><session-config><session-timeout>120</session-timeout></session-config><!-- 默认首页定义 --><welcome-file-list><welcome-file>login2.jsp</welcome-file></welcome-file-list><!-- Error Page定义 --><error-page> <exception-type>java.lang.Throwable</exception-type> <location>/commons/error.jsp</location> </error-page> <error-page><error-code>500</error-code><location>/commons/error.jsp</location></error-page><error-page><error-code>404</error-code><location>/commons/404.jsp</location></error-page><error-page><error-code>403</error-code><location>/commons/403.jsp</location></error-page> </web-app> <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><constant name="struts.devMode" value="true"/> <constant name="struts.objectFactory" value="spring" ></constant><package name="calvin" extends="struts-default"> <action name="login" class="/loginAction"> <result name="error">index.jsp</result> <result name="success">/pages/index.jsp</result> </action></package> </struts> <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- Spring容器配置文件 --> <!-- 告诉spring hibernate文件的位置 然后加载 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/policemanagement?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="rooot"/> <property name="maxActive" value="100"/> <property name="maxIdle" value="30"/> <property name="maxWait" value="1000"/> <property name="defaultAutoCommit" value="true"/> <property name="removeAbandoned" value="true"/> <property name="removeAbandonedTimeout" value="60"/> <property name="logAbandoned" value="true"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources" > <list> <value>calvin/po/pojo/hbm/arrestedPerson.hbm.xml</value> <value>calvin/po/pojo/hbm/caseRegisted.hbm.xml</value> <value>calvin/po/pojo/hbm/caseThread.hbm.xml</value> <value>calvin/po/pojo/hbm/caseVictim.hbm.xml</value> <value>calvin/po/pojo/hbm/policeOfficer.hbm.xml</value> <value>calvin/po/pojo/hbm/victimOffice.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hbm2ddl.auto">create</prop> </props> </property> </bean> <!-- 为hibernte配置事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- daoContext 配置原因 所以放在这边 --> <bean id="dao" class="calvin.dao.imp.BaseDAOHibernate"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="policeOfficerDAO" class="calvin.dao.imp.PoliceOfficerImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="arrestedPersonDAO" class="calvin.dao.imp.ArrestedPersonImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="caseRegisteredDAO" class="calvin.dao.imp.CaseRegisteredImp"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="caseThreadDAO" class="calvin.dao.imp.CaseThreadImp"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="caseVictimDAO" class="calvin.dao.imp.CaseVictimImp"><property name="sessionFactory" ref="sessionFactory" /></bean> <bean id="victimOfficeDAO" class="calvin.dao.imp.VictimOfficeImp"> <property name="sessionFactory" ref="sessionFactory" /></bean> <!-- ENd --> <!-- IOC 注入机制 --> <!-- 定义事务模板类 --> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <!-- 注入事务管理器 --> <property name="transactionManager" ref="transactionManager"/> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property></bean> <!-- 配置具体业务逻辑层组件的事物代理 --> <bean id="manager" parent="txProxyTemplate"> <property name="target"> <bean class="calvin.service.BaseManager"> <property name="dao" ref="dao"/> </bean> </property> </bean> <!-- 配置具体的业务逻辑组件额事务代理 --> <!-- 配置业务逻辑组件的事务代理,使用了bean 的继承 --> <!-- 配置所需要的dao组件!!!即这里用的是dao的名字 --> <bean id="facadeManager" parent="txProxyTemplate"> <!-- 配置事务代理时,指定代理的目标,此处的目标是嵌套bean--> <property name="target"> <!-- 嵌套bean无须使用 id属性--> <bean class="calvin.service.imp.FacadeManagerImp"> <!-- 为业务逻辑组件注入DAO组件 --> <property name="victimOfficeDAO" ref="victimOfficeDAO"/> <property name="policeOfficerDAO" ref="policeOfficerDAO"/> <property name="caseVictimDAO" ref="caseVictimDAO"/> <property name="caseThreadDAO" ref="caseThreadDAO"/> <property name="caseRegisteredDAO" ref="caseRegisteredDAO"/> <property name="arrestedPersonDAO" ref="arrestedPersonDAO"/> </bean></property> </bean> <!-- action --> <bean id="myService" class="calvin.action.test.MyServiceImp"/> <bean name="/loginAction" class="calvin.action.LoginAction" scope="prototype"> <property name="ms" ref="myService"/> </bean> </beans> package calvin.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.junit.Test;import calvin.action.baseAction.BaseAction;import calvin.action.test.MyService;import calvin.po.pojo.PoliceOfficer;public class LoginAction extends BaseAction{private String username;private String password;private MyService ms;public MyService getMs() {return ms;}public void setMs(MyService ms) {this.ms = ms;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String execute() throws Exception{System.out.println("AAA");if(ms.valid(getUsername(),getPassword())){return new String("success");}else{return "error";}}} package calvin.action.test;public class MyServiceImp implements MyService{public boolean valid(String username,String pass){return true;}} 首页配置就是一个很简单的登陆页面.

解决方案

把项目上传看看!!!
解决方案二:
首页配置就是一个很简单的登陆页面.

时间: 2024-09-12 15:04:31

SSH搭建好了之后开始测试Struts的Action 转到自己写的404页面的相关文章

SSH搭建的框架,刷新页面时报500错误

问题描述 用SSH搭建了web工程的框架,在没编写web.xml文件时,页面能正常显示,后来涉及到业务处理需要配置web.xml,但是配置好后刷新页面就报500错误.以下是MyEclipse控制台报的错误:这是我的项目架构,目前尚在写注册功能:hibernate配置文件及web.xml网上查了下,发现那个错误的原因是使用了Hibernate4的缘故,但是我配置的明明是hibernate3,而且配置文件显示也是hibernate3.一直卡在这个问题上不知道怎么解决 解决方案 解决方案二:浏览器报的

StrutsTestCase测试Struts应用程序

本文介绍了一种利用开源工具测试Struts Action的办法. 利用这种办法,开发人员可以不需要发布Struts应用程序,不需要Web服务器就可以象测试普通Java Class一样测试Struts Action,从而能够极大地提高Struts的可测试性能,加快Struts程序的开发速度 一.Struts测试概述 一个具有良好系统架构的J2EE应用程序至少有三层组成,即表现层,商业层和系统集成层(包括数据存取以及和其他系统集成),目前,Struts是应用比较广泛,实现MVC2模式应用于表现层的一

struts 2-ajax请求到struts的action

问题描述 ajax请求到struts的action 我用ajax请求到struts的action进行数据的updatesql发送了,response返回也可以,但是无法commit我commit了也没有报错,但是数据就是写不到数据库了,然后这条SQL一直等待commit的状态,请问怎么回事.我在别的地方调用这update方法一点问题都没有 解决方案 下个断点看下.是不是事务锁住了 解决方案二: 看下事务的隔离机制.是不是这里有多个事务在执行. 解决方案三: 是不是锁表了?跟代码看下

SSH做登录时,service不能注入到action,这是为什么啊

问题描述 本人郁闷啊,难道UserService没有注入到Action中啊??java.lang.NullPointerExceptioncom.portal.user.web.UserAction.login(UserAction.java:44)sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)UserAction代码:Java codepackage com.portal.user.web;import java.util

java-使用Struts注解action 和namespace associated with context path [/Pl

问题描述 使用Struts注解action 和namespace associated with context path [/Pl There is no Action mapped for namespace [/] and action name [user] associated with context path [/Pl使用Struts注解 总是报这个错,框架是用eclipse搭的,如果把action写在struts.xml中就可以跳转,而使用注解就报这个错.大神门,求解

工具-为什么ssh框架运行期间直接从数据库更改数据必须重启服务器才能把数据更新到页面

问题描述 为什么ssh框架运行期间直接从数据库更改数据必须重启服务器才能把数据更新到页面 而从页面更改数据则不用重启服务器 一直弄不明白,我的是spring管理session跟事务,工具方法用的getHibernateTemplate() 解决方案 刚开始,你是创建了session,你虽然更改了数据库的数据,但是你的运行项目里面还是以前的session,必须重启服务,从新加载,获取最新的信息 解决方案二: 开始,你是创建了session,你虽然更改了数据库的数据,但是你的运行项目里面还是以前的s

Struts class照着别人的程序写的

问题描述 Struts class照着别人的程序写的 不知道哪里错 因为照着别人的复制的 求指教 解决方案 import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; 加上 解决方案二: hibernate有没有配置好,对应的jar包有没有导入? 解决方案三: 划红线所在的包没

struts注解 action后面传参问题

问题描述 struts注解 action后面传参问题 在 http xxxx.xxx.action?a=b 正常访问,而http xxxx.xxx.action?a=b+b就会错误,请问这是有什么限制?在哪里调? 解决方案 个人觉得是struts地址栏传参数时候,struts识别你的第一个参数a的值是等号后面的b,加号不能识别,然后后面就报错了. 解决方案二: 你要这么做的话就先把url定义好了,定义一个变量替换就行了 解决方案三: 可以试下这样看看这两种可不可以xxxx.xxx.action?

struts的action处理时,前台等待及操作成功的显示问题

问题描述 求助各位大神们,我想在struts的action处理时,前台显示"正在处理中",操作完成后,显示"操作成功"前台应该怎么来写? 解决方案 解决方案二:这是我的网页,添加用户成功后想显示"操作成功",但是不会写.我现在是action直接返回成功或是失败,成功就直接跳到外面那层用户列表,相当于刷新了一下外面的页面.解决方案三:楼主可以使用进度条效果也可以显示进度消息窗口.$.messager.progress();关闭进度消息窗口.$.me