刚接触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.

解决方案 »

  1.   

    我想看看你的JSP页面的代码。
      

  2.   

    :~) 你的代码存在以下问题:
    1.action里没有path属性,即访问这个action的路径没有;
    2.你的action类里,用的是System.out.println(message),页面肯定是不会打印出message,就算执行了action,也是控制台输出
      

  3.   

    为了保持封装性,最好改为:private String message;在HelloWorld.jsp 中用<s:property value="message" />应该会得到Hello World的!!!
      

  4.   

    public HelloWorldAction() { } 
    //在这里应该有get 和 set 的方法public String execute() throws Exception { 
    message = "Hello World"; 
    System.out.println(message); 
    return SUCCESS; 
    } } 
      

  5.   


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

  6.   


    JSP和应该也有一个message的属性控件
      

  7.   

    LZ,请使用 /login.action 访问,不要用 /Hello.jsp 访问哦....