考虑以下jsp:
<%!
private String firstName = "";
private String lastName = "";
private String formatName(){
return lastName + ", " + firstName;
}
%>
<%
firstName = request.getParameter("FNAME");
lastName = request.getParameter("LNAME");
String formattedName = formatName();
out.print(formattedName);
%>
有没有办法让声明部分&lt;%! (...)%&gt;无状态?这就是我希望firstName和lastName对每个页面加载都是唯一的。我不关心性能或最佳实践,现在不能选择重构。我正在寻找像&lt;%@ page persist =&#34; false&#34; %取代。有什么建议吗?
答案 0 :(得分:0)
如果您正在尝试完成示例似乎想要完成的任务,那么您根本不需要实例变量。你可以把它写成
<%!
private String formatName(String firstName, String lastName){
return lastName + ", " + firstName;
}
%>
<%
String formattedName = formatName(request.getParameter("FNAME"),
request.getParameter("LNAME"));
out.print(formattedName);
%>
答案 1 :(得分:0)
<%!
public class MyHandler
{
public HttpServletRequest objRequest = null;
public HttpSession objSession = null;
public HttpServletResponse objResponse = null;
public JspWriter objOut = null;
private String firstName = "";
private String lastName = "";
private String formatName(){
return lastName + ", " + firstName;
}
public void go()
{
firstName = objRequest.getParameter("FNAME");
lastName = objRequest.getParameter("LNAME");
String formattedName = formatName();
objOut.print(formattedName);
}
}
%>
<%
MyHandler myHandler = new MyHandler();
myHandler.objRequest = request;
myHandler.objSession = session;
myHandler.objResponse = response;
myHandler.objOut = out;
myHandler.go();
%>