2011-06-13 35 views
0

struts.xml中动作是没有得到映射在支柱

<struts> 
<!-- Configuration for the default package. --> 
<package name="default" extends="struts-default"> 
    <action name="HelloWorld" class="vaannila.HelloWorld"> 
    <result name="SUCCESS">/success.jsp</result> 
</action> 
</package> 
</struts> 

的web.xml

<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> 

的index.jsp

<%@taglib uri="/struts-tags" prefix="s" %> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Hello World</title> 
    </head> 
    <body> 
    <s:form action="HelloWorld" > 
     <s:textfield name="userName" label="User Name" /> 
     <s:submit /> 
    </s:form> 
</body> 

的success.jsp

HelloWorld.java

package vaannila; 


public class HelloWorld { 

private String message; 

private String userName; 

public HelloWorld() { 
} 


    public String execute() { 



    setMessage("Hello " + getUserName()); 
    return "SUCCESS"; 
} 

public String getMessage() { 
    return message; 
} 


public void setMessage(String message) { 
    this.message = message; 
} 


public String getUserName() { 
    return userName; 
} 


public void setUserName(String userName) { 
    this.userName = userName; 
}} 

错误消息我得到是

HTTP状态404 - 有没有映射的动作名称的HelloWorld行动。

我正在使用NetBeans IDE 6.8

struts.xml中,web.xml文件中的WEB-INF目录下。 源码包 - > vannilla-> HelloWorld是动作类的动作位置。

谁能帮助我

+1

移动'struts.xml'任何'classpath'('[项目] \ src'或'WEB-INF \ classes'或'etc') – lschin 2011-06-13 09:31:33

+1

是它working.thks ....但为什么netbeans创建struts.xml在web-inf ...当我在源文件包中的文件转移它的工作。什么原因 – coder 2011-06-13 09:58:32

回答

0

似乎在web.xml文件的问题试图改变过滤器类来过滤调度然后尝试..我希望它会正常工作。

struts2的

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class> 

+1

'web.xml'没有错, FilterDispatcher'被弃用,并被'StrutsPrepareAndExecuteFilter'取代。 – lschin 2011-06-13 09:45:05

+0

是的,我知道,但是,尝试改变它与filterdispatcher然后看到,如果仍然没有映射消息那么我们会尝试其他的东西,因为其他的代码对我来说似乎很好。 – jalil 2011-06-13 11:32:04