返回类数组的java方法

时间:2014-04-16 05:41:44

标签: java jsp

我是java的oop编程新手,我在查找如何在.jsp文件中处理此方法时遇到了麻烦。抱歉有限的信息,所以我要详细说明因为我仍然卡住了。我有一个LoginServlet,它从html文件中获取输入。

LoginServlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    loginInfo.setUsername(username);
    loginInfo.setPassword(password);

    request.setAttribute("login", loginInfo);
    ServletContext context = getServletContext();
    RequestDispatcher dispatch = context.getRequestDispatcher("/Accounts.jsp");
    dispatch.forward(request, response);
}

然后我将JavaBean.java与accessors / mutators一起用于密码和用户名,JavaBean也有这个方法

JavaBean - 获取/设置密码和方法的方法用户名和此方法getAccounts()

public Account[] getAccounts() {
    return new Account[] {
            new Account(3001, "Checking", 29.96f , 2912.96f),
            new Account(4001, "Savings", 500.00f, 10030.50f),
            new Account(6001, "IRA", 1000.25f, 43456.83f)
            };

}

好的,现在我终于拥有只有JavaBean.java才能访问的Account.java,所以我需要使用getAccounts()创建一个实例,然后访问Account.java中的getter和setter。最后我将包含Accounts.jsp代码

Accounts.jsp

<jsp:useBean id="login" class="edu.pcc.cis234j.assign04b.LoginBean" scope="request">
 <jsp:setProperty property="*" name="login"/>  
</jsp:useBean> 
<h1>Welcome, <jsp:getProperty property="userName" name="login"/> How's your day going?</h1>
<% Account[] a = login.getAccounts(); %>

那么我将如何处理这个问题,以便显示新的帐户信息。无法访问Account.java并在JavaBean.java中使用此方法返回Account.java实例的数组。

3 个答案:

答案 0 :(得分:2)

假设你有这个:

package p1;
public class Account{
  public Account(int x, String y, float f, float z){....}
}

package p2;
import p1;
public class Login{
 public Account[] getAccounts() {
  return new Account[] {
        new Account(3001, "Checking", 29.96f , 2912.96f),
        new Account(4001, "Savings", 500.00f, 10030.50f),
        new Account(6001, "IRA", 1000.25f, 43456.83f)
       };          
  } 
}

然后使用scriplets你可以像这样访问你的jsp:

<%@page import="p1"%>
<%@page import="p2"%>
<%
  Login login = new Login();
  Account[] ac = login.getAccounts();
%>

PS:确保您的导入正确

答案 1 :(得分:1)

package test;

public class Account {

    String ac_id;
    String ac_bal;

    public Account(String ac_id, String ac_bal) {
        this.ac_id = ac_id;
        this.ac_bal = ac_bal;
    }

    public Account() {
    }

    public Account[] getAccounts() {
      return new Account[] {
            new Account("3001", "Checking"),
            new Account("4001", "Savings"),
            new Account("6001", "IRA")
          };          
    }
}

以上是java代码......

<%
        Account a = new Account();
        Account[] arr = a.getAccounts();
%>

这是jsp代码。

它没有错误地正常工作。

希望这有效。

答案 2 :(得分:0)

所以这就是缺少的东西,我完成了这个。 首先我导入了类,使编译器对类型Account感到满意。

<%@ page import="edu.pcc.cis234j.assign04b.LoginBean" %>
<%@ page import="edu.pcc.cis234j.assign04b.Account" %>

然后我就能以这种方式访问​​帐户方法:

<% Account[] a = login.getAccounts(); %>


<% for(Account ac : a) { %>  
    <%= ac.getBalance() %>  
    <%= ac.getLastDeposit() %>
    <%= ac.getName() %>
    <%= ac.getId() %>
 <% } %> 

现在我只需将这些结果格式化为表格或其他内容,感谢您的帮助。我经常通过提问来解决自己的问题。它似乎让我的思绪因某种原因而滚动。