【问题标题】:Convert my JSP Scriptlet code to EL将我的 JSP Scriptlet 代码转换为 EL
【发布时间】:2015-01-28 08:12:38
【问题描述】:

我正在尝试使用 servlet 和 JSP 向用户打印信息。 ${sessionScope.student.getName()} 不工作,我不知道为什么。有人可以指导我吗?

<%
DevInfo stu = (DevInfo)getServletContext().getAttribute("student");
%>

<li><p>
            <b>Developers Name:</b>
             ${sessionScope.student.getName()}
        </p></li>
    <li><p>

DevInfo 类:

public class DevInfo {

private String name;


public DevInfo (String name) {
    this.name = name;

}

public String getName() {
    return name;
}

}

设置属性的开发者类:`

  public class Developer implements ServletContextListener{


@Override
public void contextDestroyed(ServletContextEvent e) {


    System.out.println("Destroyed!");



}

@Override
public void contextInitialized(ServletContextEvent e) {
    ServletContext cntxt = e.getServletContext();

    String name = e.getServletContext().getInitParameter("dname");

    cntxt.log("gggg "+name);
    DevInfo student = new DevInfo(name);

    cntxt.setAttribute("student", student); 

}

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    表达式语言中访问不同的作用域

    Attribute "x" value in  page scope : ${x}
    Attribute "x" in request scope : ${requestScope.x}
    Attribute "x" in session scope : ${sessionScope.x}
    

    您的问题似乎 Customer 是一个 bean 类,因此可以使用以下代码 sn-p 访问它的属性

    ${requestScope['control'].firstName}
    

    ${x}

    Jsp 容器首先在页面范围内检查属性 x 。如果它可用,它会打印属性值。如果它不可用,那么它将检查请求范围,然后是会话和应用程序范围。它只是充当

    pageContext.findAttribute(String name);

    方法。

    【讨论】:

    • 谢谢。我更新了我的问题,我还不够清楚。你能看看吗?谢谢。
    【解决方案2】:
    <c:out value="${requestScope.control.firstName}" />
    

    客户必须是 Java Bean。

    【讨论】:

      【解决方案3】:

      编辑

      试试这个:

      ${student.getName()}
      

      假设属性名称为name

      ${student.name}
      

      jsp useBean的示例用法:

      <jsp:useBean id='test' class='package.Test' scope='page'/>
      

      使用 EL 调用方法

      ${test.getTest()}
      

      这里,范围默认是page,可以是requestsession

      【讨论】:

      • 谢谢。我更新了我的问题,我还不够清楚。你能看看吗?谢谢。
      • 感激不尽。谢谢你。它工作得很好。只是出于好奇提出一个问题。如果我有一个叫做 它将如何使用 EL。会是 ${test.getTest()} 吗?
      • @GarpLuffy,请接受我的帖子,因为它对你有用
      猜你喜欢
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多