我正在尝试向jsp添加一个复选框,以便在进入网站之前接受条款和条件。即使我有一个getter方法而且我没有看到任何拼写错误,我仍然得到关于没有getter方法的相同错误。我不明白我错过了什么。
的login.jsp
<html:checkbox property="termsCheckbox" value="true"/>
LoginForm.java
public final class LoginForm extends ActionForm
{
private boolean termsCheckbox = false;
public void setTermsCheckbox(boolean termsCheckbox)
{
this.termsCheckbox = termsCheckbox;
}
public boolean isTermsCheckbox()
{
return termsCheckbox;
}
}
这是我去JSP时遇到的错误:
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp
at line 73
73: <html:checkbox property="termsCheckbox" title="terms" value="true"/>
javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method
for property termsCheckbox of bean org.apache.struts.taglib.html.BEAN
答案 0 :(得分:1)
应该是isTermsCheckbox:
public boolean isTermsCheckbox(){
return termsCheckbox;
}
获取您的房产价值:
<html:checkbox property="isTermsCheckbox" value="true"/>
答案 1 :(得分:0)
请参阅以下内容:
Java: how to name boolean properties
写下你这样的属性声明:
<html:checkbox property="${form.termsCheckbox}" title="terms" value="true"/>
form
是您的表单LoginForm实例。
答案 2 :(得分:0)
我不确定JSP是否采用这种方式,但是某些框架需要显式名称get或set prefix,例如setTermsCheckbox和getTermsCheckbox。试试看,看看它是否解决了这个问题。
答案 3 :(得分:0)
首先,您需要检查文件action
中html:form
标记中的 login.jsp
属性。
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html:form action="login">
<html:checkbox property="termsCheckbox">Terms</html:checkbox>
<html:submit />
</html:form>
接下来,在确定操作后,此操作映射的关联表单 name
( LoginForm
)必须相同使用属性termsCheckbox
。
<form-beans>
<form-bean name="LoginForm" type="test.form.LoginForm" />
</form-beans>
<action-mappings>
<action path="/login" type="test.action.LoginAction" name="LoginForm"
input="/login.jsp" scope="request"></action>
</action-mappings>
行动表格的代码不需要任何特别的内容。
public final class LoginForm extends ActionForm {
boolean termsCheckbox;
public boolean isTermsCheckbox() {
return termsCheckbox;
}
public void setTermsCheckbox(boolean termsCheckbox) {
this.termsCheckbox = termsCheckbox;
}
}
答案 4 :(得分:0)
现在答案已经很晚了,你可能已经找到了解决方案,我想提供适合我的解决方案。
如您所说,您已复制表单,请确保2件事:
<html:checkbox property = "" />
代码必须在<html:form></html:form>
代码<html:form action="">
代码操作属性应与struts配置文件中的<action path="">
属性匹配。在处理现有代码时,我们可能会忘记应用第二点的更改。
答案 5 :(得分:0)
尝试在表单上实现以下内容:
[String] ${stUserDomain},[String] ${stUserAccount} = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name.split("\")