Java 无法识别setter和getter方法
我是strut2初学者,我正在测试我的第一个hello world示例。这是我的动作课: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");
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', ]