簡體   English   中英

在jsp上調用bean方法

[英]Calling bean method on jsp

我正在嘗試調用一個在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>

我從另一個代碼引導自己,而這個方法就是這樣調用的。 但就我而言,它不起作用,我無法弄清楚出什么問題了。

既然已經標記了此 ,並假定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" />

PS:始終避免使用Scriptlet( <% %> ), 它們是邪惡的

按照Struts的流程,bean類中應該有與getter和setter相同名稱的字段。 例如,如果您的方法名稱為getListPorjects,則在您的bean類中應該有一個私有字符串變量名稱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變量的ID應該在JSP頁面上。

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

<h1>${aux.listProjects}

希望這會幫助你。 祝好運

您只是錯過了在JSP中使用<%%>和<%=%>的方式。 在<%%>標簽中使用

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

對於<%=%>

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

用一些注釋引用並修復您的最新更改:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM