gpt4 book ai didi

java - 在 JSP 中定义类

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:04:34 25 4
gpt4 key购买 nike

请不要打我的脸!我知道这与良好的设计背道而驰,但我只是在编写一个测试页来演示一些东西。我们的 webapp 模块(正确地)没有直接访问我们的域类。我不想在 JSP 之外创建整个类,因为该页面仅用于演示目的,而且出于同样的原因,我不想编写大量无关代码。我试图在 JSP 中以通常的方式定义一个类,但那没有用(引发了很多编译时错误)。这是一个快速而肮脏的一次性交易(我会在完成后摆脱它)。我只想知道这是否可能。如果没有,那么我会走很远的路。

<%

public class Person {
private int id;
private int age;
private String name;

/*
... ctor and getters and setters
*/

}
%>

我得到的错误:

convert-jsp-to-java:
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------

An error occurred at line: 57 in the generated java file
Syntax error on token "class", invalid VariableDeclarator

An error occurred at line: 73 in the generated java file
The return type is incompatible with Object.getClass()

An error occurred at line: 74 in the generated java file
Syntax error on token "class", Identifier expected

An error occurred at line: 77 in the generated java file
Syntax error on token "class", invalid VariableDeclaratorId

An error occurred at line: 78 in the generated java file
Syntax error on token "this", PrimitiveType expected

An error occurred at line: 78 in the generated java file
Syntax error on token "class", invalid Expression

An error occurred at line: 79 in the generated java file
Syntax error on token "class", invalid Expression

最佳答案

我不明白为什么这是不可能的。 JSP 只是编写 Servlet 的另一种方式,因此您应该能够在 Servlet 中将类创建为静态(或就此而言,非静态)内部类,就像您创建任何其他类一样,使用 <%! %> 惯例。

我能够快速、实用地进行概念验证:

<%@page contentType="text/html" pageEncoding="MacRoman"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%!
private static class NdBadIdea {
private final int foo = 42;

public int getFoo() {
return foo;
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=MacRoman">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<%=new NdBadIdea().getFoo()%>
</body>
</html>

关于java - 在 JSP 中定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com