struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts>
<include file="struts-default.xml" />
<package name="com.struts.demo" extends="struts-default.xml">
<action name="HelloWorld" class="com.struts.demo.HelloWorld">
<result>/helloWorld.jsp</result>
</action>
</package>
</struts>
HelloWorld.javapackage com.struts.demo;import com.opensymphony.xwork2.ActionSupport;public class HelloWorld extends ActionSupport {
/**
*
*/
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String execute() throws Exception {
// TODO Auto-generated method stub
name="Hello " + name;
return SUCCESS;
}}
sayHello.jsp
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Say Hello</title>
</head>
<body>
<h4>
sayHello to
</h4>
<s:form action="HelloWorld.action">
Name:<s:textfield name="name"></s:textfield>
<s:submit />
</s:form>
</body>
</html>
页面提交后异常信息 是 There is no Action mapped for namespace / and action name HelloWorld.百度上关于这个 的解决方案 铺天盖地 但没有找到适合的答案 struts.xml 存放在 src下面的 路径应该不会错 本人今天开始 学习 struts2 希望各位朋友 帮我看看 谢谢
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts>
<include file="struts-default.xml" />
<package name="com.struts.demo" extends="struts-default.xml">
<action name="HelloWorld" class="com.struts.demo.HelloWorld">
<result>/helloWorld.jsp</result>
</action>
</package>
</struts>
HelloWorld.javapackage com.struts.demo;import com.opensymphony.xwork2.ActionSupport;public class HelloWorld extends ActionSupport {
/**
*
*/
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String execute() throws Exception {
// TODO Auto-generated method stub
name="Hello " + name;
return SUCCESS;
}}
sayHello.jsp
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Say Hello</title>
</head>
<body>
<h4>
sayHello to
</h4>
<s:form action="HelloWorld.action">
Name:<s:textfield name="name"></s:textfield>
<s:submit />
</s:form>
</body>
</html>
页面提交后异常信息 是 There is no Action mapped for namespace / and action name HelloWorld.百度上关于这个 的解决方案 铺天盖地 但没有找到适合的答案 struts.xml 存放在 src下面的 路径应该不会错 本人今天开始 学习 struts2 希望各位朋友 帮我看看 谢谢
解决方案 »
- 各位java牛人,帮忙,小弟感激不尽!这种附件显示 是什么控件呢?
- struts2下载文件 异常
- Spring Jar包在哪儿下载啊,,官网变更好找了好久,,都只有源码
- 请问JSP+SERVLET+EJBCLIENT+SESSIONBEAN的系统中要注意哪些安全与性能问题!
- 寻求恩师!我想学习JAVA!有人愿意帮助我吗?我将不甚感激!
- tomcat5的虚拟目录autoDeploy问题
- 请斑竹保留!大家工作辛苦了,应该多多注意身体的保养!秘籍!
- 怎么向系统发送消息(WIN2K)
- 老班催了,巨急,一个struts的问题,大家帮帮忙啦。
- spring-boot每天第一次请求数据特别慢,之后速度正常,请大神帮助!
- struts2 类型转换问题
- 一个JAVA题
Name:<s:textfield name="name"></s:textfield>
<s:submit />
改成(把.action去掉)试试<s:form action="HelloWorld">
Name:<s:textfield name="name"></s:textfield>
<s:submit />
听三楼的。
<action name="HelloWorld" class="com.struts.demo.HelloWorld">
<result>/helloWorld.jsp</result>
</action>
去掉你的那个include标签对!~~~
这个我后面没有那个 action 后缀
<s:form action="HelloWorld.action">
<s:form action="com.struts.demo/HelloWorld.action">
试试还有<package name="com.struts.demo" extends="struts-default.xml">
这个name属性改个看看,别用你的包名,随便起个,比如就叫strutdemo
试试把Uri路径‘/’去掉,看看行不!
应该是少了namespace吧,的,
那你访问的路径是什么呢?
如果照你所说访问路径应该是 ../?/HelloWorld
JDK 1.6
TOMCAT 5.5
ECLIPSE 3.2
struts 2.1.8.1(也试过struts 2.0.14)
-------------------------------------------------
试过了楼上各位说的所有方法,都不能解决。。
期待大虾来解惑,不胜感激!!!
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- 指定struts2配置的根元素 -->
<struts>
<!-- 指定Action的路径 -->
<package name="com.struts.demo" extends="struts-default">
<action name="HelloWorld" class="com.struts.demo.HelloWorld">
<result >/sayHello.jsp</result>
</action>
</package>
</struts>
HelloWorld.java
package com.struts.demo;import com.opensymphony.xwork2.ActionSupport;public class HelloWorld extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String execute() throws Exception {
name="Hello! "+name;
return SUCCESS;
}
}sayHello.jsp<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Say Hello</title>
</head>
<body>
<h4>
sayHello to
</h4>
<s:form action="HelloWorld" >
Name:<s:textfield name="name"></s:textfield>
<s:submit />
</s:form>
</body>
</html>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">
<welcome-file-list>
<welcome-file>sayHello.jsp</welcome-file>
</welcome-file-list>
<!-- struts2的核心技术 -->
<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>
</web-app>我这里是成功运行的,没有配置web.xml的时候也是报错的,基本上是你的代码,没有特别的修改
导入的包包运行的效果图成功显示这里请求的地址是HelloWorld.action
不知道对你有没有帮助
<result >/sayHello.jsp</result>
改成:
<result name="success">/HelloWorld.jsp</result>
HelloWorld.jsp<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Hello</title>
</head>
<body>
<h3><s:property value="name" /></h3>
</body>
</html>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="default" namespace="/" extends="struts-default">
<action name="HelloWorld" class="com.struts.demo.HelloWorld">
<result>/helloWorld.jsp</result>
</action> </package>
</struts>配置文件中这么多足以、
然后在地址栏中http://localhost:8080/项目名/action名
据我以前的经验,你肯定是把struts.xml的位置放错了
应该把它放在你的class所在包外面的目录你完全可以找个例子,比对一下目录结构
代码如下:<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!--配置Struts2-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</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>
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">注意版本...........2.17需要指定跳转方式:<result>/helloWorld.jsp</result>改为<result name="success">/helloWorld.jsp</result>
去掉那个 .xml 谢谢大家了