Java 如何访问html内容中try catch块内声明的变量?

Java 如何访问html内容中try catch块内声明的变量?,java,jsp,scope,scriptlet,Java,Jsp,Scope,Scriptlet,我不熟悉jsp、java servlet等。我遇到了一个问题,在这个问题中,我有一个jsp页面,它在scriptlet中包含一个try-catch块。我在try-catch块中定义了一些变量,我需要在HTML中访问这些变量。由于它位于try-catch块内,html页面无法访问这些变量及其成员变量 <% Logger logger = Logger.getLogger("abcd.jsp"); try{ UserProfile u = s

我不熟悉jsp、java servlet等。我遇到了一个问题,在这个问题中,我有一个jsp页面,它在scriptlet中包含一个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>

私人意见
现在,html页面可以访问变量u、rectype_str和rectype if,如果在try之外声明,那么可以访问这些变量,但是我想在try中包含它们之后再访问它们,因为其他一些验证对于公共论坛来说是保密的


由于如果捕获到异常,则返回错误页面,并且不需要加载html内容,因此我需要一个解决方案,仅当try block在没有任何异常的情况下成功执行时才加载此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
%>
        <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;
    }
%>

私人意见