如何访问 html 内容中 try-catch 块内声明的变量?
How to access variables declared inside try-catch block in html content?
我是 jsp、java servlet 等的新手。我遇到了一个问题,我有一个 jsp 页面,它包含一个 try-catch 块脚本。我在 try-catch 块中定义了一些变量,我需要在 HTML 中访问它们。由于它位于 try-catch 块内,html 页面无法访问这些变量及其成员变量。
<%
Logger logger = Logger.getLogger("abcd.jsp");
try{
UserProfile u = su.getUserProfile(session,request);
String rec_typestr = request.getParameter("rectype");;
int rectype = Integer.parseInt(rec_typestr);
....
....
//some more code
}
catch(NumberFormatException e) {
logger.error("Error in the request: " + e.getMessage());
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Invalid rectype passed in request");
return;
}
%>
<div id="testDiv1">
<div class="testClass1">
Private Views for <%=u.getFirstName() + " "%> <%=u.getLastName()%>
</div>
<div class="testClass2">
<input type="button" value="Create" class="genericButton" onclick="displayLink('openSomePage.jsp?rectype=<%=rectype%>')" />
<input type="button" value="Refresh" class="genericButton" onclick="perform1stTask()" />
<input type="button" value="Print" class="genericButton" onclick="perform2ndTask()" />
<input type="button" value="Export to Excel" class="genericButton" onclick="perform3rdTask(<%=u.getId()%>,'<%=someTestVariable%>', '<%=rec_typestr%>')" />
</div>
</div>
现在变量 u、rectype_str 和 rectype 如果声明在外部尝试可以通过 html 页面访问,但我想在将它们包含在 try 之后访问它们,因为一些其他验证对 public 论坛是机密的。
因为如果捕获异常然后返回错误页面并且不需要加载html内容,我想要一个解决方案来加载这个html内容仅当 try 块成功执行且没有任何异常时。
如果我理解了你的需求,你可以按如下方式进行:
<%
Logger logger = Logger.getLogger("abcd.jsp");
try{
UserProfile u = su.getUserProfile(session,request);
String rec_typestr = request.getParameter("rectype");;
int rectype = Integer.parseInt(rec_typestr);
....
....
//some more code
%>
<div id="testDiv1">
<div class="testClass1">
Private Views for <%=u.getFirstName() + " "%> <%=u.getLastName()%>
</div>
<div class="testClass2">
<input type="button" value="Create" class="genericButton" onclick="displayLink('openSomePage.jsp?rectype=<%=rectype%>')" />
<input type="button" value="Refresh" class="genericButton" onclick="perform1stTask()" />
<input type="button" value="Print" class="genericButton" onclick="perform2ndTask()" />
<input type="button" value="Export to Excel" class="genericButton" onclick="perform3rdTask(<%=u.getId()%>,'<%=someTestVariable%>', '<%=rec_typestr%>')" />
</div>
</div>
<%
}
catch(NumberFormatException e) {
logger.error("Error in the request: " + e.getMessage());
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Invalid rectype passed in request");
return;
}
%>
我是 jsp、java servlet 等的新手。我遇到了一个问题,我有一个 jsp 页面,它包含一个 try-catch 块脚本。我在 try-catch 块中定义了一些变量,我需要在 HTML 中访问它们。由于它位于 try-catch 块内,html 页面无法访问这些变量及其成员变量。
<%
Logger logger = Logger.getLogger("abcd.jsp");
try{
UserProfile u = su.getUserProfile(session,request);
String rec_typestr = request.getParameter("rectype");;
int rectype = Integer.parseInt(rec_typestr);
....
....
//some more code
}
catch(NumberFormatException e) {
logger.error("Error in the request: " + e.getMessage());
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Invalid rectype passed in request");
return;
}
%>
<div id="testDiv1">
<div class="testClass1">
Private Views for <%=u.getFirstName() + " "%> <%=u.getLastName()%>
</div>
<div class="testClass2">
<input type="button" value="Create" class="genericButton" onclick="displayLink('openSomePage.jsp?rectype=<%=rectype%>')" />
<input type="button" value="Refresh" class="genericButton" onclick="perform1stTask()" />
<input type="button" value="Print" class="genericButton" onclick="perform2ndTask()" />
<input type="button" value="Export to Excel" class="genericButton" onclick="perform3rdTask(<%=u.getId()%>,'<%=someTestVariable%>', '<%=rec_typestr%>')" />
</div>
</div>
现在变量 u、rectype_str 和 rectype 如果声明在外部尝试可以通过 html 页面访问,但我想在将它们包含在 try 之后访问它们,因为一些其他验证对 public 论坛是机密的。
因为如果捕获异常然后返回错误页面并且不需要加载html内容,我想要一个解决方案来加载这个html内容仅当 try 块成功执行且没有任何异常时。
如果我理解了你的需求,你可以按如下方式进行:
<%
Logger logger = Logger.getLogger("abcd.jsp");
try{
UserProfile u = su.getUserProfile(session,request);
String rec_typestr = request.getParameter("rectype");;
int rectype = Integer.parseInt(rec_typestr);
....
....
//some more code
%>
<div id="testDiv1">
<div class="testClass1">
Private Views for <%=u.getFirstName() + " "%> <%=u.getLastName()%>
</div>
<div class="testClass2">
<input type="button" value="Create" class="genericButton" onclick="displayLink('openSomePage.jsp?rectype=<%=rectype%>')" />
<input type="button" value="Refresh" class="genericButton" onclick="perform1stTask()" />
<input type="button" value="Print" class="genericButton" onclick="perform2ndTask()" />
<input type="button" value="Export to Excel" class="genericButton" onclick="perform3rdTask(<%=u.getId()%>,'<%=someTestVariable%>', '<%=rec_typestr%>')" />
</div>
</div>
<%
}
catch(NumberFormatException e) {
logger.error("Error in the request: " + e.getMessage());
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Invalid rectype passed in request");
return;
}
%>