Java 如何使用JSP初始化和交互变量
这是我第一次使用JSP和Web应用程序。我写的代码有问题:Java 如何使用JSP初始化和交互变量,java,jsp,jstl,javabeans,Java,Jsp,Jstl,Javabeans,这是我第一次使用JSP和Web应用程序。我写的代码有问题: <% List<Location> result = new ArrayList<>(); if (basicSearchBean.validate()) { result = basicSearchBean.getResult(); } pageContext.setAttri
<%
List<Location> result = new ArrayList<>();
if (basicSearchBean.validate()) {
result = basicSearchBean.getResult();
}
pageContext.setAttribute("result", result);
%>
<div style="width: 800px; margin-left: 50px; margin-top: 30px;">
<%
if ( result.size() > 0 ) {
%>
//VISUALIZATION PART
<%
}
%>
</div>
我在网上找到了一个指南,其中类似getListOfStructures()
的方法返回一个初始化为final
的变量
非常感谢您抽出时间 我看不出您在这里显示的代码中有任何问题。变量已正确初始化,空值来自bean。这可能是因为FilteredSearch.getListOfStructures()返回null,但这是您必须自己调试的 然而。。。在JSP页面中编写Java块是非常糟糕的做法,您应该尽可能避免这种情况。有关一些良好实践指南,请参见 我想你会发现这项任务更容易使用和完成。它们基本上为常用函数和机制提供标记库,用于访问bean中的数据、对数据进行迭代等。这样可以节省编写大量样板代码的时间,并且在大多数情况下可以避免在页面本身中使用Java 此外,您还可以创建自己的标记(),它允许您将Java逻辑与页面布局分开 如果您很好地使用了这些技术,那么最终应该会得到一个只包含JSP/HTML标记的JSP页面,所有的逻辑将被分离到您的bean和任何标记类中,这比在表示层中使用逻辑更容易编写、理解和维护
public class SearchBean {
//other attributes...
private List<Location> result;
public List<Location> getResult() {
return result;
}
public void setResult(List<Location> result) {
this.result = result;
}
public SearchBean() {
}
//Getters and setters....
public boolean validate() {
if(this.nation.equals("") || this.city.equals("") || this.checkin == null|| this.checkout == null) {
return false;
}
try {
this.result = FilteredSearch.getListOfStructures(this);
} catch (Exception e) {
return false;
}
return true;
}
}