<% PageInfo<Student> pageInfo = new PageInfo<>(); %> 如何变成构造一个公共常量
时间: 2023-10-18 10:04:22 浏览: 62
如果你想将 `PageInfo<Student>` 对象变成一个公共常量,你可以将其定义为一个 `static final` 成员变量。在 JSP 页面中,你可以通过访问该变量来获取 `PageInfo<Student>` 对象的实例。具体的代码可以参考下面的示例:
```java
public class Constants {
public static final PageInfo<Student> PAGE_INFO = new PageInfo<>();
}
```
在 JSP 页面中,你可以通过以下方式访问 `PAGE_INFO` 常量:
```jsp
<%@ page import="com.example.Constants" %>
...
<%
PageInfo<Student> pageInfo = Constants.PAGE_INFO;
// 使用 pageInfo 对象
%>
```
请注意,在 JSP 中使用 Java 代码并不是一个好习惯,因为它会导致 JSP 页面与 Java 代码紧密耦合,使得代码难以维护。因此,你应该尽量避免在 JSP 中使用 Java 代码,而是将它们放在 servlet 或其他 Java 类中。
相关问题
<%! public static final PageInfo<Student> pageInfo = new PageInfo<>(); %> <% request.setCharacterEncoding("utf-8"); String name = StrUtil.toStr(request.getParameter("name")); String qq1 = StrUtil.toStr(request.getParameter("qq")); Date start = StrUtil.toDate(request.getParameter("start")); Date end = StrUtil.toDate(request.getParameter("end")); PageInfo<Student> pageInfo = pageInfo;
这段代码存在一个问题,即在 JSP 页面中定义了两个同名的 PageInfo 对象,一个是静态常量 pageInfo,一个是局部变量 pageInfo。这会导致局部变量 pageInfo 覆盖了静态常量 pageInfo,从而导致静态常量 pageInfo 没有被使用到。
如果你想使用静态常量 pageInfo,应该避免在同一个 JSP 页面中定义同名的局部变量。你可以改变变量名,或者避免使用局部变量。例如,你可以将代码改为:
```
<%! public static final PageInfo<Student> PAGE_INFO = new PageInfo<>(); %>
<%
request.setCharacterEncoding("utf-8");
String name = StrUtil.toStr(request.getParameter("name"));
String qq1 = StrUtil.toStr(request.getParameter("qq"));
Date start = StrUtil.toDate(request.getParameter("start"));
Date end = StrUtil.toDate(request.getParameter("end"));
// 使用静态常量 pageInfo
PAGE_INFO.setPageNum(1);
PAGE_INFO.setPageSize(10);
PAGE_INFO.setOrderBy("id desc");
%>
```
在这个修改后的代码中,我们将静态常量 pageInfo 改名为 PAGE_INFO,并在 JSP 页面中使用 PAGE_INFO 对象,避免和局部变量名冲突。
! public static final PageInfo<Student> pageInfo = new PageInfo<>();
这段代码定义了一个公共(public)、静态(static)和不可变的(final) PageInfo 对象,泛型类型为 Student。PageInfo 是一个用于处理分页信息的类,而泛型类型为 Student 表示这个 PageInfo 对象是用于存储 Student 类型的数据。
这个 PageInfo 对象是静态的,意味着它与类相关,而不是与对象相关。也就是说,无论创建多少个类的实例,这个 PageInfo 对象都只会有一个。这个 PageInfo 对象是不可变的,意味着它的值在初始化之后就不能再被修改。
在这段代码中,PageInfo 对象没有被初始化,因此它的值为 null。如果你想要使用这个 PageInfo 对象,需要在代码的某个地方对它进行初始化,例如:
```
pageInfo = new PageInfo<>(studentList);
```
这里的 studentList 是一个包含 Student 类型对象的列表,用于初始化 PageInfo 对象。这样,你就可以在代码的其他地方使用 pageInfo 对象了。
阅读全文