type: Status reportmessage: There is no Action mapped for action name Login.description: The requested resource (There is no Action mapped for action name Login.) is not available.
There is no Action mapped for action name Login. 在struts2中的配置错误仔细检查jsp中 <form action="Login.action"> 必须与 struts.xml中 有对应得action配置 大小写必须相同 struts.xml中应该存在 name="Login" 的action配置
console 中没反应 只有浏览器中报错 There is no Action mapped for namespace / and action name Logincheck.description The requested resource (There is no Action mapped for namespace / and action name Logincheck.) is not available.
struts-login.xml
<?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> <package name="login" namespace="/login" extends="default">
<action name="Action*" method="{1}" class="LoginAction">
<result name="input">/login.jsp</result>
<result type="success">/index.jsp</result>
</action>
</package>
</struts>
在struts2中的配置错误仔细检查jsp中 <form action="Login.action">
必须与 struts.xml中 有对应得action配置 大小写必须相同
struts.xml中应该存在 name="Login" 的action配置
struts.xml
<?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>
<include file="struts-login.xml"/>
<package name="default" extends="default">
</package></struts>
login.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<s:form id="form1" name="form1" method="post" action="Logincheck">
<table width="200" border="1" align="center">
<tr>
<td colspan="4"><img src="file:///E|/学习软件/网页三剑客/12.jpg" width="372" height="226" /></td>
</tr>
<tr>
........LoginActin:package zxg.wxit.org.action.login;import zxg.wxit.org.dao.*;
import zxg.wxit.org.model.*;public class LoginAction {
private String userName;
private String password;
private SysUserDAO sysUserDAO;
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;
}
public SysUserDAO getSysUserDAO() {
return sysUserDAO;
}
public void setSysUserDAO(SysUserDAO sysUserDAO) {
this.sysUserDAO = sysUserDAO;
}
public String check(){
SysUser user=(SysUser) sysUserDAO.findByName(userName);
if(user!=null){
if(password.equals(user.getPassword())){
return "success";
}
}
return "input";
}
}application-login.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans> <bean name="LoginAction" class="zxg.wxit.org.action.login.LoginAction"
scope="prototype">
</bean>
</beans>application
<result name="input">/login.jsp</result>
<result type="success">/index.jsp</result>
</action>在你的LoginAction.java中定义一个login方法 public String login(){...}
<package name="Login" namespace="/login" extends="default">
<action name="Login*" method="{1}" class="LoginAction">
<result name="input">/login.jsp</result>
<result type="success">/index.jsp</result>
</action>
</package>
LoginAction.java中方法名是:check()
此类中定义一个loginCheck的方法
<bean name="LoginAction" class="zxg.wxit.org.action.login.LoginAction"
不必要定义。。直接
<action name="Logincheck" method="check" class="zxg.wxit.org.action.login.LoginAction">
http://127.0.0.1:8080/MyProject2/Logincheck.action
http://127.0.0.1:8080/MyProject2/action/login/Logincheck.action
但还是出错
错误也一样
jsp中
<form action="Logincheck.action">
....
</form>struts.xml中
<action name="Logincheck" method="check" class="zxg.wxit.org.action.login.LoginAction">
<result name="input">/login.jsp</result>
<result type="success">/index.jsp</result>
</action>Action中 zxg.wxit.org.action.login.LoginAction.java 继承 ActionSupport 定义方法
public String check(){
//....
return "input";
}
运行地址
http://127.0.0.1:8080/MyProject2/action/login/Logincheck.action
而且我觉得像你这样做的话
spring是什么作用啊
我是初学者
不懂
他们之间关系
初学者的话先别直接弄spring吧先把struts和hibernate搞懂在去弄spring。
一步步来。得先搞清楚mvc再去弄spring对你有好处的
不过加上后还是不行啊,我快疯了
jsp中记得是 Logincheck.action
struts.xml中是Logincheck
jsp中:
<s:form id="form1" name="form1" method="post" action="Logincheck.action">
struts-login.xml中:
<package name="Login" namespace="login" extends="default">
<action name="Logincheck" method="{1}" class="zxg.wxit.org.action.login.LoginAction">
运行地址
http://127.0.0.1:8080/MyProject2/Logincheck.action
还是一样的
import zxg.wxit.org.dao.*;
import zxg.wxit.org.model.*;public class LoginAction extends BaseAction {
private String userName;
private String password;
private SysUserDAO sysUserDAO;
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;
}
public SysUserDAO getSysUserDAO() {
return sysUserDAO;
}
public void setSysUserDAO(SysUserDAO sysUserDAO) {
this.sysUserDAO = sysUserDAO;
}
public String check(){
SysUser user=(SysUser) sysUserDAO.findByName(userName);
if(user!=null){
if(password.equals(user.getPassword())){
return "success";
}
}
return "input";
}
}
只有浏览器中报错
There is no Action mapped for namespace / and action name Logincheck.description The requested resource (There is no Action mapped for namespace / and action name Logincheck.) is not available.
struts.xml中把包名改成这个
<package name="Login" namespace="/login" extends="struts-default">另外 你的BaseAction的类代码也贴出来
http://127.0.0.1:8080/MyProject2/Logincheck 来访问
不能http://127.0.0.1:8080/MyProject2/Logincheck.action一直没注意,原来你是直接通过url来访问的。。汗
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;public class BaseAction extends ActionSupport {
protected static Log logger = LogFactory.getLog(BaseAction.class); protected HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
}
protected HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
}
protected HttpSession getSession() {
return this.getRequest().getSession();
}
}
把namespace置空。好久没弄过struts2.。。突然看到你这帖子,早上无聊,呵呵,复习了下
struts-login.xml
<package name="Login" namespace="" extends="default">
<action name="Logincheck" method="{1}" class="zxg.wxit.org.action.login.LoginAction">
struts.xml
<package name="struts2" extends="struts-default">
struts-login.xml
<package name="Login" namespace="" extends="default">
default改成struts-default tomcat启动会出错
保证配置没错再去分开啊。。
把这块配置到struts.xml中把struts.xml中配置struts-login.xml的部分注释掉。先确保不404
<action-mappings>
这个地方改正确就可以了
</action-mappings>