代码之家  ›  专栏  ›  技术社区  ›  user3876291

HTTP状态404-没有为操作和结果输入定义结果:添加结果类型输入阻止提交

  •  2
  • user3876291  · 技术社区  · 10 年前

    我有一个表格,其中我有:

    JSP:

    <form name="xyz" action="upload">
        <input type="file" name="upload"/>
        <input type="submit" name="submit" value="submit"/>
    </form>
    

    struts.xml :

    <action name="upload" class="uploadClass" method="saveExcel">
        <result name="success">page1.jsp</result>
        <result name="error">error.jsp</result>
    </action>
    

    为此,它给出了一个错误:

    HTTP Status 404 - No result defined for action and result input
    

    如果我修改 支柱.xml 作为:

    <action name="upload" class="uploadClass" method="saveExcel">
        <result name="success">page1.jsp</result>
        <result name="error">error.jsp</result>
        <result name="input">page1.jsp</result>
    </action>
    

    当我尝试提交表单时,页面会重新加载。

    如何解决此问题?

    2 回复  |  直到 3 年前
        1
  •  2
  •   Roman C    3 年前

    使用编码很重要 multipart/form-data 如果您正在上传文件,请填写表格。

    <form name="xyz" action="upload" enctype="multipart/form-data">
        <input type="file" name="upload"/>
        <input type="submit" name="submit" value="submit"/>
    </form>
    

    Struts不接受请求发送的文件,如果该文件未编码为 多部分/表单数据 发生文件上载错误。您可以检查正在使用的错误 s:actionerror s:fielderror 标记。默认消息使用配置 File Upload Error Messages .

    注意,如果您的操作有错误,并且您调用了默认的拦截器堆栈 workflow interceptor 将返回 INPUT 后果它给了你 刷新 效应

        2
  •  0
  •   Abhijeet Panwar    10 年前

    错误消息表示尚未为操作定义名为input的结果。当验证传递给操作的参数有问题时,结果输入是Struts返回的默认结果。

    因此,如果验证中出现问题,struts-2框架会在struts.xml中查找“input”的映射。如果您的struts.xml没有定义它。它会抛出找不到的错误。如果您定义了它,它会将您重定向到映射的jsp页面。因此,当您第二次提交它时,如果您定义结果类型输入,它将您发送到和您为其定义page1.jsp相同的页面。所以,您的页面将在发送到相同页面时重新加载。