我在 struts 2 中收到此错误“没有为操作操作定义结果。AddTaskAction 和结果输入”

问题描述 投票: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 类文件,我在这里写了关于使用 hibernates 事务、会话将数据插入数据库的内容 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;
    }
}

In this below jsp page i written a code to take the data from the user and it will redirect the data into my action file to insert into databse

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 struts2
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>
© www.soinside.com 2019 - 2024. All rights reserved.