1

我在返回的 JSP 中从我的 struts 2 操作访问方法时遇到问题。据我了解,如果我有如下所示的操作:

public class HomeAction {
    public String execute() {
        return "SUCCESS";
    }

    public String getSomething() {
        return "somethh";
    }
}

然后从 JSP 我应该能够调用${something}"somethh"返回。然而,这似乎不能正常工作。有没有我可能错过的明显配置?我正在使用 struts 2、spring 3.1 和 tomcat 7。

4

3 回答 3

0

事实证明,环境问题导致 struts 行为异常。它按我的预期工作,为这个模糊的问题道歉。

于 2012-05-01T10:00:39.593 回答
0

我不确定您要做什么,因为您所问的内容非常抽象,并且总是更好地向您的 JSP 页面显示您正在尝试的地方,或者执行您所描述的事情,这样可以更好地展示其他人。

您需要告诉 S2 您希望它调用哪个方法,以防您尚未定义任何方法 default is execute().

在您的情况下,您可以通过使用配置文件(struts.xml)或通过注释来告诉 S2 您要调用哪个方法

<action name="default" class="tutorial.HomeAction">
  <result>Welcome.jsp</result>
</action>
<action name="somethh" class="tutorial.HomeAction" method=getSomethh>
  <result>Welcome.jsp</result>
</action>

在这里你必须配置不同的动作名称,比如<s:url value="default.action"/> and <s:url value="somethh.action"/>

如果您想要相同的操作名称但想要重定向到您的操作类的不同方法,您可以在您的<s:url>也喜欢配置方法名称

<s:url value="generic.action" method="getSomethh">

在上面的示例中,您通过标签告诉 S2 您要调用您的操作类的哪个方法,以及您需要在 struts.xml 文件中配置它们

于 2012-04-30T10:03:52.673 回答
-1

你不能直接从jsp文件调用方法。如果你这样做,那么为什么mvc.Struts2是一个非常简单的框架。你可以配置方法和类strutsconfig.xml。并用一个动作映射它。实例变量可以直接在jsp中访问。例如如果你有一个方法

    public class ABCAction extends ActionSupport{
    public String getNames(){

    nameslist=dao.getNamelist();
    retrun "success";
    }
    //getters and setters for namelist
    public setNamesList(List nameslist){
    this.nameslist-namelist;

}
}
public List getNames(){
return this.nameslist;
}
}

你可以直接在你的jsp中访问nameslist——

于 2012-04-30T09:36:30.190 回答