为什么我收到错误:没有为操作 [] 和结果输入定义结果?

问题描述 投票:0回答:1

这是我的 Struts 文件,我在其中映射了所有操作文件

struts.xml:

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="default" extends="struts-default">
         <action name="AddTaskAction" class="actions.AddTaskAction" method="post">
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
        <action name="UpdateTaskAction"
            class="actions.UpdateTaskAction" method="post">
            <result name="success">/displayTask.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
        <action name="DeleteTaskAction"
            class="actions.DeleteTaskAction" method="post">
            <result name="success">/displayTask.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>

这是

Action
类文件,我在这里写了关于使用Hibernate的事务、会话将数据插入数据库的内容

AddTaskAction.java:

package actions;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.opensymphony.xwork2.ActionSupport;
import helper.FactoryProvider;
import model.Task;

public class AddTaskAction extends ActionSupport {
    private Task t = new Task();

    public String post() {
        Session session = FactoryProvider.getFactory().openSession();
        Transaction tx = null;

        try {
            tx = session.beginTransaction();
            session.persist(t);
            tx.commit();
            addActionMessage("Task added successfully!");
            return SUCCESS;
        } catch (Exception e) {
            if (tx != null && tx.isActive()) {
                tx.rollback();
            }
            addActionError("Error adding task: " + e.getMessage());
            return ERROR;
        } finally {
            session.close();
        }
    }

    public Task getT() {
        return t;
    }

    public void setT(Task t) {
        this.t = t;
    }
}

在下面的 JSP 页面中,我编写了一段代码来从用户那里获取数据,它将数据重定向到我的操作文件中以插入到数据库中

addTask.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Add Task</title>
    </head>
<body>
<div class="form-container">
        <form action="AddTaskAction" method="post">
            <div class="form-element">
                <label for="name" class="form-label">Task Name</label>
                <input type="text" id="name" name="t.name" required>
            </div>
            <div class="form-element">
                <label for="description" class="form-label">Description</label>
                <input type="text" id="description" name="t.description" required>
            </div>
            <div class="form-element">
                <label for="due_date" class="form-label">Due Date</label>
                <input type="text" id="due_date" name="t.due_date" required>
            </div>
            <div class="form-element">
                <label for="level" class="form-label">Priority Level</label>
                <input type="text" id="level" name="t.level" required>
            </div>
            <div class="form-element">
                <label for="status" class="form-label">Status</label>
                <input type="text" id="status" name="t.status" >
            </div>
            <div class="form-submit">
                <button type="submit">ADD</button>
            </div>
        </form>
    </div>
</body>
</html> 

我正在尝试使用 Struts2 将数据插入数据库,但结果我经常遇到上述错误

java hibernate configuration struts2 actionresult
1个回答
0
投票

应该配置

INPUT
结果。

<action name="AddTaskAction" class="actions.AddTaskAction" method="post">
  <result name="success">/success.jsp</result>
  <result name="input">/addTask.jsp</result>
  <result name="error">/error.jsp</result>
</action>
如果您的操作有错误,

INPUT
结果将由
workflow
拦截器
返回。在执行操作之前,堆栈中的拦截器可能会遇到这些错误。例如,执行验证时可能会出现验证错误,因为堆栈上有一个
validation
拦截器

© www.soinside.com 2019 - 2024. All rights reserved.