从 JSP 访问 struts 操作方法

问题描述 投票:0回答:3

我在从返回的 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。

jsp struts2 struts
3个回答
0
投票

我不确定你想要做什么,因为你所要求的非常抽象,最好显示你的 JSP 页面,你正在尝试做你所描述的事情,这可以为其他人提供更好的图片。

您需要告诉S2您希望它调用哪个方法,如果您没有定义任何方法,则默认为

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 文件中配置它们


0
投票

事实证明,环境问题导致了支柱行为异常。它按照我的预期工作,对于这个模糊的问题表示歉意。


-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中访问namelist--

© www.soinside.com 2019 - 2024. All rights reserved.