今天用SSH做个例子,功能很简单,就是用户登录,什么都不添写,单击提交时候会显示ApplicationResources.properties资源文件写好的错误信息,但是现在JSP也面能出来,但提交时候出错:[size=small]HTTP Status 404 - Servlet action is not available[/size]
现在把程序代码公布下:
----------------login.jsp----------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.rfgk.db.Student;
/**
@struts.action path="/login" name="loginForm" input="/form/login.jsp" scope="request" validate="true"
/
public class LoginAction extends Action {
/
/**
---------------------web.xml-----------------------------
<?xml version="1.0" encoding="UTF-8"?>
/form/login.jsp
action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
3
detail
3
0
action
*.do
index.jsp
----------------------validate.xml---------------------
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<!--文件验证-->
-------------------struts-config.xml----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
attribute="loginForm"
input="/form/login.jsp"
name="loginForm"
path="/login"
validate="true"
scope="request"
type="org.rfgk.ui.action.LoginAction" />
<!-- 加载验证插件 -->
---------------------applicationContext.xml------------------------
<?xml version="1.0" encoding="UTF-8"?>
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-2.0.xsd">
<bean id="dateSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:dfrf">
</property>
<property name="username" value="wqm"></property>
<property name="password" value="wqm"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dateSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>org/rfgk/db/Student.hbm.xml</value>
<value>org/rfgk/db/Course.hbm.xml</value></list>
</property></bean>
<bean id="StudentDAO" class="org.rfgk.db.StudentDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="CourseDAO" class="org.rfgk.db.CourseDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean></beans>
[b]问题补充:[/b]
刚按你说的测试了下,没有打印任何东西,之前我就知道是配置文件哪有错,但水平有限,看不出来啊!
麻烦高手在帮看看.谢谢~
[b]问题补充:[/b]
我按你们的办法都试了还是不行~~~~
呢?
你web.xml里不是对*.do做的过滤吗?html里form的action怎么没有.do?
你看一下struts-config.xml中的input="/form/login.jsp"是否正确。
[quote]
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Student loginForm = (Student) form;// TODO Auto-generated method stub
[color=red]return null; [/color]
}
}
[/quote]
return null .没返回;
在该句
[color=red]return null; [/color]
之前
添加测试语句;
System.out.println("收到请求:"+form);
看看是否已经到了Action;如果未到这里,应该就是配置文件的问题了.
你看一下数据库的链接问题、
[quote]
[/quote]
修改为
[code="java"]
[/code]
另外,确保你的 /form/login.jsp 存在.
晕????你吧 改成不行?