本人花了一天时间,做了个SSH登录示例!提交表单时出现HTTP Status 404 - Servlet action is not available错误!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"><struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="form.LoginForm">
<form-property name="userName" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
name="loginForm"
path="/login"
scope="request"
type="action.LoginAction"
validate="false">
<forward name="success" path="/success.jsp"/>
</action>
</action-mappings>
<message-resources parameter="propertice.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml"/>
</plug-in>
</struts-config>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="form.LoginForm">
<form-property name="userName" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
name="loginForm"
path="/login"
scope="request"
type="action.LoginAction"
validate="false">
<forward name="success" path="/success.jsp"/>
</action>
</action-mappings>
<message-resources parameter="propertice.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/beans.xml"/>
</plug-in>
</struts-config>
一般应该就是这些地方没有对应
applicationContext.xml中把datasource的class值改成
org.springframework.jdbc.datasource.DriverManagerDataSource
试试
我想应该是我以前经常遇到这个问题,一般都是采用的代理有问题,比如用这个文件来管理action,而action中没有注入DAO
具体的还要看你的代码了。。
<bean id="userlogindao" class="dao.UserLoginDao">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean name="/login" class="com.yourcompany.struts.action.LoginAction">
<property name="userlogindao">
<ref bean="userlogindao"/>
</property>
</bean>
可能问题正如3楼所说的吧!我的applicationContext.xml中的关键内容如上所示!!
并没有什么问题哦!!另外我的action中的代码如下所示:public class LoginAction extends Action {
/*
* Generated Methods
*/
private UserLoginDao userlogindao;
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
UserloginForm userloginForm = (UserloginForm) form;
String userName=userloginForm.getUsername().trim();
String password=userloginForm.getPassword().trim();
if(userlogindao.isUser(userName, password))
{
return mapping.findForward("success");
}
else
{
return null;
}
}
public UserLoginDao getUserLoginDao()
{
return userlogindao;
}
public void setUserLoginDao(UserLoginDao userlogindao)
{
this.userlogindao=userlogindao;
}
}
<ref bean="userlogindao"/>
</property>/*修改过的*/
<property name="userLoginDao"> // 指定注入的DAO的实例名
<ref bean="UserLoginDao"/> //你DAO的文件名
</property>这里<ref bean="UserLoginDao"/>
name属性是自己取的名字,也就是实例名,而下面的bean属性指定的是的文件名!如果解决了话请给下分 谢谢。。
我的问题是因为导入的包有问题
给你个提示,设置好log4j,这样后台可能有出错的提示,就好办了
版主的问题很明显,配置的bean大小写没区分