在jsp上调用bean方法

时间:2015-12-09 06:03:13

标签: java jsp struts2 ognl struts-tags

我试图在jsp文件上调用一个连接Bean的方法。
该方法将向RMI服务器发出请求并返回字符串。
此时该方法只返回一个预定义的字符串进行测试。

这是bean方法:

public String getListProjects() throws RemoteException {

    this.dataToSend = new Object[2];
    this.dataToSend[1] = 0;

    this.postCard = new ClientRequest("2", this.dataToSend, "tempo");

    try{
      this.postCard = this.connectToRMI.getActualProjects(this.postCard);
    }catch(Exception e){
      e.printStackTrace();
    }

    return "Hello";

}

这是jsp代码:

<h1>Projectos Actuais</h1>

<h2><%

    fundstarter.model.ConnectToRMIBean aux = new       fundstarter.model.ConnectToRMIBean();
    try{
        aux.getListProjects();
    }catch(Exception e){
        e.printStackTrace();
    }

    %>
</h2>

我从另一个代码引导我的自我,这个方法就像这样调用。但就我而言,它不起作用,我无法弄清楚出了什么问题。

4 个答案:

答案 0 :(得分:2)

由于您已标记此,假设getListProjects()在Action上,在JSP中使用:

<s:property value="listProjects" />

如果它在bean上,则在Action中声明bean,并通过getter公开它:

private MyBean bean;

public MyBean getBean(){ 
    return bean; 
}

在JSP中使用点符号

<s:property value="bean.listProjects" />

P.S:总是避免使用Scriptlets(<% %>),they're evil

答案 1 :(得分:0)

根据Struts的流程,beanclass中的字段应该与getter&amp;的名称相同。二传手。例如,如果您的方法名称是getListPorjects,那么在您的bean类中应该有一个私有字符串变量名称listprojects。

此外,您的方法将更新以下方式返回listprojects。

示例:

public String getListProjects() throws RemoteException {

    this.dataToSend = new Object[2];
    this.dataToSend[1] = 0;

    this.postCard = new ClientRequest("2", this.dataToSend, "tempo");

    try{
      this.postCard = this.connectToRMI.getActualProjects(this.postCard);
      listprojects = "hello"
    }catch(Exception e){
      e.printStackTrace();
    }

    return listprojects;

}

调用bean变量应该在JSP页面上带有ID。

<jsp:useBean id="aux" class="com.path.to.ConnectToRMIBean" scope="request" /> 
----
yours stuff
-----

<h1>${aux.listProjects}
希望这会对你有所帮助。祝你好运

答案 2 :(得分:0)

你只是错过了&lt; %%&gt;和&lt;%=%&gt;用于JSP。打印在&lt; %%&gt;标签使用

<% out.println("Your results"); %>

和&lt;%=%&gt;

<%=
   String.valueOf(1+2);
%>

答案 3 :(得分:0)

使用一些评论引用并修复您的最新修改:

<h1>Projectos Actuais</h1>

<h2><%
    try{        
      fundstarter.model.ConnectToRMIBean aux = new       fundstarter.model.ConnectToRMIBean();

      //Send result into generated HTML page with out.print!
      out.print(aux.getListProjects());
    }catch(Exception e){
        e.printStackTrace();
    }

    %>
</h2>