Java 无法识别setter和getter方法

Java 无法识别setter和getter方法,java,struts2,Java,Struts2,我是strut2初学者,我正在测试我的第一个hello world示例。这是我的动作课: package com.tutorialspoint.struts2; public class HelloWorldAction { private String myname = ""; public String execute() throws Exception { System.out.println("Execute successfully");

我是strut2初学者,我正在测试我的第一个hello world示例。这是我的动作课:

package com.tutorialspoint.struts2;

public class HelloWorldAction {
    private String myname  = "";

    public String execute() throws Exception {
        System.out.println("Execute successfully");
        return "success";
    }

    public String getMyname() {
        return this.myname;
    }

    public void setMyname(String name) {
        System.out.println("myName is set");
        this.myname = name;
    }
}
这是第一页:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World From Struts2</h1>
   <form action="hello">
      <label for="myName">Please enter your name</label><br/>
      <input type="text" name="myname" value="No name"/>
      <input type="submit"/>
   </form>
</body>
</html>
如果我在action类和相应的jsp文件中将属性“myname”更改为“name”,那么它运行良好,没有错误。
请提出修复建议。

只需检查您的jar文件即可。
我只是在我的项目中复制粘贴您的代码,它运行良好,没有任何错误

请遵循POJO类中变量中camelCase的命名约定。我发现Struts2对此非常敏感

我面临一个问题:如果你给一封可变的电子邮件命名,那么struts就不能用了。如果把它重命名为elecMail,那么它就可以用了

查看模式:电子邮件将具有setter和getter方法,分别为setEMail()和getEMail(),即两个连续的大写字母。Struts在查找setter方法名时可能存在一些缺陷


可能与您面临的情况类似。

最后,我找到了问题的原因。在更改属性名、方法名和jsp文件后,我们必须重新启动服务器。只有刷新浏览器才会导致问题。扩展ActionSupport与否并不影响与问题的关系。

不是真正的答案,更像是评论。它显示了相同的错误感谢您的回答。在重新启动tomcat服务器之前,我一直这么认为。实际上,问题源于没有重新启动服务器。我是初学者,我想我学到了一些东西。S2不区分大小写。单首低位字符的情况是由于如何生成访问器造成的。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World</title>
</head>
<body>
    Hello World, <s:property value="myname"/>
</body>
</html>
<?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="helloworld" extends="struts-default">

      <action name="hello" 
            class="com.tutorialspoint.struts2.HelloWorldAction" 
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>
com.opensymphony.xwork2.interceptor.ParametersInterceptor error
Unexpected Exception caught setting 'myname' on 'class com.tutorialspoint.struts2.HelloWorldAction: Error setting expression 'myname' with value ['No name', ]