gpt4 book ai didi

java - 为什么当我请求 Struts2 操作时会出现此 NPE?

转载 作者:行者123 更新时间:2023-12-02 03:57:24 25 4
gpt4 key购买 nike

我正在使用 Struts 和 Struts 2.x,当我尝试从 Struts 2 表单向操作类发出请求时遇到异常。

File:   org/apache/struts2/impl/StrutsActionProxy.java
Line number: 69
Stacktraces
java.lang.NullPointerException org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:554)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)

如果我的理解没有错的话。当我通过登录按钮发出请求时,它将转到 struts.xml 并查找操作类。

似乎无法找到我所理解的操作类,我已引用此 page看起来也很相似,但我无法弄清楚我的代码中到底有什么问题。我的struts.xmllogin.jsp和Login类资源代码如下:

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />

<package name="default" extends="struts-default">
<action name="login" class="com.myapp.strust2x.web.action.LoginAction" method="execute">
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>

登录.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<s:form action="Login" method="post">
<s:textfield key="userName" label="User Name"/><br />
<s:password key="passowrd" label="Password"/><br />
<s:submit value="Login" label="Login" />
</s:form>
</body>
</html>

登录操作

package com.myapp.strust2x.web.action;

import com.myapp.Constant;

public class LoginAction {

private String userName;
private String passowrd;

public LoginAction() {
System.out.println("now Object Created LoginAction");
}

public String execute() throws Exception {
System.out.println("HI i am from hello");
return Constant.SUCCESS;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getPassowrd() {
return passowrd;
}

public void setPassowrd(String passowrd) {
this.passowrd = passowrd;
}

}

最佳答案

您可能在 web.xml 中使用已弃用的 FilterDispatcher。将其替换为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

更多信息here .

关于java - 为什么当我请求 Struts2 操作时会出现此 NPE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35306548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com