Java 如何使用JSTL启动静态函数?如何读取字符串?
假设我有一门课是这样的:Java 如何使用JSTL启动静态函数?如何读取字符串?,java,jsp,jstl,Java,Jsp,Jstl,假设我有一门课是这样的: public class MyClass { private String name; public MyClass(final String name) { this.name = name; } public static void startMe() { //do something } public static String gimmeString() {
public class MyClass {
private String name;
public MyClass(final String name) {
this.name = name;
}
public static void startMe() {
//do something
}
public static String gimmeString() {
//do something
return "myString";
}
public MyClass getObject(final String name) {
//do something
return new MyClass(name);
}
}
首先,我想知道如何使用JSTL在MyClass类中启动函数“startMe”?没什么了,只需启动这个函数。然后,如何在函数“gimmeString”中启动和显示字符串。最后(是的,看起来很有趣)我想访问函数getObject(name)并将其保存在JSTL变量中(或者我以后可以使用这个对象的东西)
我只知道我需要豆子。在那之后,我不知道如何在JSTL中使用它,我有这样的东西:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="start" scope="session" class="com.MyClass"/>
<%-- and now? <c:?? --%>
</body>
</html>
在此处插入标题
如果不使用预处理servlet或像JSF这样的MVC框架,您就无法干净地做到这一点。
仅提供获取/设置模型值的工具。没别的了。它绝对不能取代MVC的控制器部分
您可以通过在getter中引入延迟加载或在setter中引入延迟执行来解决这个问题
例如,延迟加载:
public String getString() {
if (string == null) {
start();
}
return string;
}
与
或者,延迟执行:
public void setString(String string) {
if (this.string == null) {
start();
}
this.string = string;
}
与
请记住,这是一个丑陋的黑客。您应该真正研究servlet或MVC框架。如果你还是新手,从一个简单的servlet开始。另请参见一些hello world示例。注意,当您使用servlet时,您不再需要
和配偶了
您的具体功能需求实际上还不清楚。特别是在会话范围的bean中使用公共静态方法是令人困惑的。如果您确实想在webapp启动时调用方法,请使用。或者,如果要在创建会话时调用方法,请使用
哦,你的豆子设计不正确。它应该有一个(隐式的)无参数默认构造函数。如果不使用预处理servlet或类似JSF的MVC框架,就无法干净地完成这项工作。
仅提供获取/设置模型值的工具。没别的了。它绝对不能取代MVC的控制器部分
您可以通过在getter中引入延迟加载或在setter中引入延迟执行来解决这个问题
例如,延迟加载:
public String getString() {
if (string == null) {
start();
}
return string;
}
与
或者,延迟执行:
public void setString(String string) {
if (this.string == null) {
start();
}
this.string = string;
}
与
请记住,这是一个丑陋的黑客。您应该真正研究servlet或MVC框架。如果你还是新手,从一个简单的servlet开始。另请参见一些hello world示例。注意,当您使用servlet时,您不再需要
和配偶了
您的具体功能需求实际上还不清楚。特别是在会话范围的bean中使用公共静态方法是令人困惑的。如果您确实想在webapp启动时调用方法,请使用。或者,如果要在创建会话时调用方法,请使用
哦,你的豆子设计不正确。它应该有一个(隐式的)无参数默认构造函数