从JSP访问struts操作方法

时间:2012-04-30 09:24:50

标签: java jsp struts2 struts jstl

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

3 个答案:

答案 0 :(得分:0)

我不确定你要做什么,因为你所要求的是非常抽象的,并且总是更好地展示你正在尝试的JSP页面o做你所描述的事情,这可以给出更好的图片。其他

你需要告诉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文件中配置它们所需的全部内容

答案 1 :(得分:0)

原来一个环境问题导致struts行为异常。它按照我的预期工作,为模糊的问题道歉。

答案 2 :(得分:-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中的名单 -