Java 操作-不调用execute()方法
我快疯了。。我从几个小时以来一直在寻找我的错误 我的表格不适用于行动。但我检查了1000次。一切都拼对了。 我不知道。。。 请帮忙 我亲爱的错误消息: HTTP状态404-没有为操作定义结果 de.nordakademie.librarymgmt.action.CreatePubAction和结果输入 类型状态报告 消息没有为操作定义结果 de.nordakademie.librarymgmt.action.CreatePubAction和结果输入 说明请求的资源不可用 ApacheTomcat/7.0.42 这就是jsp。在名为createPublication.jsp的jsp文件夹中Java 操作-不调用execute()方法,java,spring,struts2,return,tiles,Java,Spring,Struts2,Return,Tiles,我快疯了。。我从几个小时以来一直在寻找我的错误 我的表格不适用于行动。但我检查了1000次。一切都拼对了。 我不知道。。。 请帮忙 我亲爱的错误消息: HTTP状态404-没有为操作定义结果 de.nordakademie.librarymgmt.action.CreatePubAction和结果输入 类型状态报告 消息没有为操作定义结果 de.nordakademie.librarymgmt.action.CreatePubAction和结果输入 说明请求的资源不可用 ApacheTomcat
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title></title>
</head>
<body>
<h3>Fügen Sie eine neue Publikation hinzu</h3>
<s:form action="createPubAction">
<s:textfield key="publication.title" />
<%-- <s:textfield key="publication.author" /> --%>
<s:textfield key="publication.publisher" />
<s:textfield key="publication.publishment" />
<s:textfield key="publication.isbn" />
<s:textfield key="publication.stock" />
<s:if test="%{publicationtypes.isEmpty()}">
keine Publikationstypen
</s:if>
<s:else>
<s:select Listkey="publication.type" list="publicationtypes.{type}" />
</s:else>
<s:if test="%{keywords.isEmpty()}">
keine Schlagwörter
</s:if>
<s:else>
<s:checkboxlist key="publication.keyword" label="Schlagworte"
name="keywordsL1" list="keywords.{name}" />
</s:else>
<s:submit label="save" value="Speichern" />
</s:form>
</body>
</html>
你在日志中看到过stacktrace吗 我冒昧地猜测,正在调用您的错误响应,而您没有映射它。能否尝试在tiles配置中显式定义错误结果
我最初的直觉(处理过一个非常类似的问题)是,您的一个JSP文件要么在tiles配置中拼写错误,要么没有包含在web应用程序中。我会仔细检查。struts.xml文件的createPubAction中的结果类型是什么?它指向哪里?目录,这是一个jsp页面。如果我从导航中调用它,它就起作用了。这就是我在struts.xml中调用的“名称”。。。名称拼写为small,然后在类路径中名称拼写为big;)刚刚看到,删除了评论。另一个问题:其他人都在工作,对吗?只是createPubAction一个让你很痛苦?它返回结果输入,而输入没有定义,它有验证错误。试着定义一个输入,就像成功一样。
<action name="createPubAction"
class="de.nordakademie.librarymgmt.action.CreatePubAction">
<result type="tiles" name="success">catalog</result>
</action>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="main" template="/jsp/main.jsp">
<put-attribute name="title" value="Dashboard"/>
<put-attribute name="menu" value="/jsp/menu.jsp"/>
<put-attribute name="header" value="/jsp/header.jsp"/>
<put-attribute name="content" value="/jsp/start.jsp"/>
</definition>
<definition name="dashboard" extends="main">
<put-attribute name="title" value="Dashboard"/>
<put-attribute name="content" value="/jsp/start.jsp"/>
</definition>
<definition name="rental" extends="main">
<put-attribute name="title" value="Verleihvorgänge"/>
<put-attribute name="content" value="/jsp/rental.jsp"/>
</definition>
<definition name="catalog" extends="main">
<put-attribute name="title" value="Katalog"/>
<put-attribute name="content" value="/jsp/catalog.jsp"/>
</definition>
<definition name="createPublication" extends="main">
<put-attribute name="title" value="Neue Publikation erstellen"/>
<put-attribute name="content" value="/jsp/createPublication.jsp"/>
</definition>
</tiles-definitions>
package de.nordakademie.librarymgmt.action;
import com.opensymphony.xwork2.ActionSupport;
import de.nordakademie.librarymgmt.model.Publication;
import de.nordakademie.librarymgmt.service.IPublicationService;
public class CreatePubAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private Publication publication;
private IPublicationService publicationService;
@Override
public String execute() throws Exception {
try{
publicationService.savePublication(publication);
return SUCCESS;
} catch(Exception e){
e.printStackTrace();
return ERROR;
}
}
public Publication getPublication() {
return publication;
}
public void setPublication(Publication publication) {
this.publication = publication;
}
public IPublicationService getPublicationService() {
return publicationService;
}
public void setPublicationService(IPublicationService publicationService) {
this.publicationService = publicationService;
}
}
<action name="createPubAction"
class="de.nordakademie.librarymgmt.action.CreatePubAction">
<result type="tiles" name="success">catalog</result>
</action>
<action name="createPubAction"
class="de.nordakademie.librarymgmt.action.CreatePubAction">
<result type="tiles" name="success">catalog</result>
<result type="tiles" name="input">catalog</result>
</action>