【问题标题】:Call java method in JSP file在 JSP 文件中调用 java 方法
【发布时间】:2012-06-06 16:47:13
【问题描述】:

我想在我的jsp页面中调用我的方法getSelectedLayouts,方法在哪里

public Iterable<Layouts> getSelectedLayouts(String Subject){
     Session sess=getCurrentSession();
     return sess.createCriteria(Layouts.class, Subject).list();
 }

在类 LayoutManager 中。我使用 Spring Bean 将 LayoutManager 传递到我的 jsp 页面

<custom:useSpringBean var="layoutManager" bean="LayoutManager">

jsp页面要求主题

<form method="post">
      <label for="subjectName">SubjectName:</label>
      <input type="text" name="subjectName" size="50" id="subjectName">
      <input class="button" type="submit" value="Search Layout" name="submit">
</form>

然后我传递给

<jsp:useBean id="subjectName" class="LayoutManager">
    <c:if test="${param.submit!=null}">

           (here's where I want to call my getSelectedLayouts method)

    </c:if>

我一直在尝试使用 scriplets,包括

的变体
<jsp:setProperty name="layout" property="*"/>
((LayoutManager)pageContext.getAttribute("layoutManager")).getSelectedLayout((La‌​youts)pageContext.getAttribute("layout")); 

或者只是

<jsp:setProperty name="layout" property="*"/>
list<Layouts> = LayoutManager.getSelectedLayouts(layout); 

Layouts 是我的对象类

如果我需要提供任何其他信息,请告诉我

编辑:当我尝试时

LayoutManager layoutManager = new LayoutManager();
String subjectNa = request.getParameter("subjectName");
Iterable<Layouts> bla = layoutManager.getSelectedLayouts(subjectNa);

我得到错误列表

org.apache.jasper.JasperException: An exception occurred processing JSP page /search.jsp at line 72

Iterable<Layouts> waters = layoutManager.getSelectedLayouts(subjectNa);

java.lang.NullPointerException
com.amazon.basalt.examples.octane.tomcat.LayoutManager.getCurrentSession(LayoutManager.java:37)
com.amazon.basalt.examples.octane.tomcat.LayoutManager.getSelectedLayouts(LayoutManager.java:50)
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

    root cause

    java.lang.NullPointerException   com.amazon.basalt.examples.octane.tomcat.LayoutManager.getCurrentSession(LayoutManager.java:37)
com.amazon.basalt.examples.octane.tomcat.LayoutManager.getAllLayouts(LayoutManager.java:68)
org.apache.jsp.search_jsp._jspService(search_jsp.java:221)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

【问题讨论】:

  • 我在这里找到了参考。 (这里的解决方案不使用 JSP 标签而是使用 scriplets )stackoverflow.com/questions/2354293/….
  • 我一直在尝试使用脚本,包括 ((LayoutManager)pageContext.getAttribute("layoutManager")).getSelectedLayout((Layouts)pageContext.getAttribute("layout"));或者只是 list = LayoutManager.getSelectedLayouts(layout);
  • 第二次尝试你必须使方法静态。请发布您遇到的错误。

标签: java jsp


【解决方案1】:

一种可能的解决方案。 (如果使用 scriplets 不是问题。)

<% 
LayoutManager layoutManager = new LayoutManager();
String subjectName = request.getParameter("subjectName");

layoutManager.getSelectedLayouts(subjectName);
%>

记得在 JSP 中导入类

【讨论】:

  • 我得到一个 java.lang.NullPointerException for layoutManager.getSelectedLayouts(subjectNa);但它至少现在通过了我的搜索参数,这比以前更好
【解决方案2】:

我建议你使用 ajax 来获取布局列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-22
    • 2011-01-22
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多