struts2 struts.xml中namespace问题
写了一个struts2的简单程序,jsp文件都放在了WebRoot下的file文件里,在struts.xml中namespace的配置如下:<?xmlversion="1...
写了一个struts2 的简单程序,jsp文件都放在了WebRoot下的file文件里,在struts.xml中namespace的配置如下:
<?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="userManager" namespace="/file" extends="struts-default">
<action name="login" class="com.struts.LoginAction">
<result name="success">/Hello.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
web.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
first.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login</title>
</head>
<body>
<div align='center'>
<form name='form' action='login'>
<table>
<tr>
<td>用户名:</td>
<td><input type=text name='userName'></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type=text name='passwored'></td>
</tr>
<tr>
<td colspan=2><input type='submit' name='button' value='提交'></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Java端:
package com.struts;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String userName;
private String passwored;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPasswored() {
return passwored;
}
public void setPasswored(String passwored) {
this.passwored = passwored;
}
public String execute() throws Exception {
System.out.println("ssssssssssss");
if (userName.equals("tom") && passwored.equals("123")) {
return SUCCESS;
}
return ERROR;
}
}
但总是报
The requested resource (/StrutsLogin/file/file/login) is not available.错误
这是哪里错了呢?namespace?我觉得没有错误啊
请高手指教帮忙看看。 展开
<?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="userManager" namespace="/file" extends="struts-default">
<action name="login" class="com.struts.LoginAction">
<result name="success">/Hello.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
web.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
first.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login</title>
</head>
<body>
<div align='center'>
<form name='form' action='login'>
<table>
<tr>
<td>用户名:</td>
<td><input type=text name='userName'></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type=text name='passwored'></td>
</tr>
<tr>
<td colspan=2><input type='submit' name='button' value='提交'></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Java端:
package com.struts;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String userName;
private String passwored;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPasswored() {
return passwored;
}
public void setPasswored(String passwored) {
this.passwored = passwored;
}
public String execute() throws Exception {
System.out.println("ssssssssssss");
if (userName.equals("tom") && passwored.equals("123")) {
return SUCCESS;
}
return ERROR;
}
}
但总是报
The requested resource (/StrutsLogin/file/file/login) is not available.错误
这是哪里错了呢?namespace?我觉得没有错误啊
请高手指教帮忙看看。 展开
4个回答
展开全部
namespace决定了action的访问路径,默认为"",可以接收所有路径的action
namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action
namespace最好也用模块来进行命名
你把你的namespace删了,直接form里面的action="login"试下
如果不删namespace,action="file/login"
或者在JSP文件中加上
<% String path = request.getContextPath(); %>
action="<%=path%>/file/login"再试下
namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action
namespace最好也用模块来进行命名
你把你的namespace删了,直接form里面的action="login"试下
如果不删namespace,action="file/login"
或者在JSP文件中加上
<% String path = request.getContextPath(); %>
action="<%=path%>/file/login"再试下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<struts>
<package name="userManager" namespace="/file" extends="struts-default">
这里的namespace说的是你的action文件的命名空间,不是jsp页面文件的位置,
<package name="userManager" namespace="/file" extends="struts-default">
这里的namespace说的是你的action文件的命名空间,不是jsp页面文件的位置,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<form ation="login.action">
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
namespace="/"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询