【发布时间】:2016-08-25 08:30:20
【问题描述】:
我正在使用 servlet 和 jsp 制作一个非常基本的 Web 应用程序,并且我进行了以下设置:
public class DataManager {
//some method implementations omitted since they are not important
public DataManager(){}
public class Author{
public int id;
public String name;
public String born;
public String died;
}
public Author getAuthor(int authorId){}
public ArrayList<Author> getAuthors(){}
}
public class AuthorsServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
ServletContext context = getServletContext();
DataManager dm = (DataManager) context.getAttribute("datamanager");
ArrayList<DataManager.Author> authors = dm.getAuthors();
request.setAttribute("authors", authors);
request.getRequestDispatcher("/authors.jsp").forward(request, response);
}
}
在我的 jsp 文件中:
<c:forEach var="author" items="${authors}">
<tr>
<td>${author.id}</td>
<td><a href="author.jsp">${author.name}</a></td>
<td>${author.born}</td>
<td>${author.died}</td>
</tr>
</c:forEach>
但是我一直收到一个错误,上面写着Property 'id' not found on type db.DataManager$Author,直到我在我的DataManager 类的内部Author 类中放入吸气剂:
public class Author{
public int id;
public String name;
public String born;
public String died;
public int getId(){ return id; }
public String getName(){ return name;}
public String getBorn(){return born; }
public String getDied(){ return died;}
}
我有两个(基本的)问题:
为什么我必须添加 getter 才能访问公共内部类的变量?
1234563获取
foo 变量的值?
【问题讨论】:
标签: java jsp jakarta-ee