刚接触Struts2不是很熟悉,写了个helloworld,但是就是取不到message的值,请大大们帮忙看下:
一下是action
package cho2.action;import com.opensymphony.xwork2.Action;public class HelloWorldAction implements Action { public String message;
public String getMessage() {
return message;
}
public HelloWorldAction() { }
public String execute() throws Exception {
message = "Hello World";
System.out.println(message);
return SUCCESS;
}}
下面是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> <constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" /> <include file="example.xml"/>
<package name="default" extends="struts-default">
<action name="login" class="cho2.action.HelloWorldAction">
<result>/HelloWorld.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package></struts>
下面是web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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"> <display-name>Struts Blank</display-name> <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.html</welcome-file>
</welcome-file-list>运行后页面总是空的,无法显示想象中的helloworld.
一下是action
package cho2.action;import com.opensymphony.xwork2.Action;public class HelloWorldAction implements Action { public String message;
public String getMessage() {
return message;
}
public HelloWorldAction() { }
public String execute() throws Exception {
message = "Hello World";
System.out.println(message);
return SUCCESS;
}}
下面是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> <constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" /> <include file="example.xml"/>
<package name="default" extends="struts-default">
<action name="login" class="cho2.action.HelloWorldAction">
<result>/HelloWorld.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package></struts>
下面是web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" 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"> <display-name>Struts Blank</display-name> <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.html</welcome-file>
</welcome-file-list>运行后页面总是空的,无法显示想象中的helloworld.
1.action里没有path属性,即访问这个action的路径没有;
2.你的action类里,用的是System.out.println(message),页面肯定是不会打印出message,就算执行了action,也是控制台输出
//在这里应该有get 和 set 的方法public String execute() throws Exception {
message = "Hello World";
System.out.println(message);
return SUCCESS;
} }
<package name="default" extends="struts-default">
<action name="login" class="cho2.action.HelloWorldAction">
<result>/HelloWorld.jsp </result> //<result 这里应该有个name="SUCCESS">/HelloWorld.jsp </result>
<result name="error">/error.jsp </result>
</action>
</package>
JSP和应该也有一个message的属性控件