一尘不染

JSP上未显示操作错误

jsp

我尝试在Action类中添加操作错误,然后将其打印在JSP页面上。

发生异常时,它将进入catch块,并在控制台中打印“插入异常时出现错误,请联系管理员”。

在catch块中,我添加了它addActionError(),并尝试在jsp页面中打印它…
但是消息未在jsp page中显示

我可能缺少什么或做错了什么?

Struts映射:

<action name="dataUpdate" class="foo.bar.myAction" method="updation">
    <result name="success" type="redirectAction">
        ../Aggregator/redirectToDataUpdate
    </result>
</action>

动作类:

public String updation() throws JiffieTransactionException{
    try {
        // do stuff...
    } catch (NumberFormatException e) {
        addActionError("Error in inserting the Exception, Contact the Admin");
        System.out.println("Error in inserting the Exception, Contact the Admin");
        e.printStackTrace();
    }
    return SUCCESS;
}

用于打印操作错误的JSP代码:

<s:if test="hasActionErrors()">
    <br></br>
    <div class="errors">
        <font color="red">
            <s:actionerror/>
        </font>
    </div>
</s:if>

阅读 161

收藏
2020-06-10

共1个答案

一尘不染

当您执行redirectAction时,将创建一个新的Request,因此所有的actionMessages,actionErrors以及所有其他参数(未明确声明要在struts配置中传递)都将丢失。

然后

        <action name="dataUpdate" class="foo.bar.myAction" method="updation">
        <result name="success" type="redirectAction">....redirectToDataUpdate</result>
        <result name="error">previousPage.jsp</result>
    </action>


        public String updation() {
        try {
            // do stuff...
            return SUCCESS;
        } catch (NumberFormatException e) {
            addActionError("Errors... ");
            e.printStackTrace();
            return ERROR;
        }
    }
2020-06-10