没有吸气剂方法有吸气剂时出错

时间:2013-12-10 14:16:17

标签: java jsp struts-1

我正在尝试向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

6 个答案:

答案 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)

首先,您需要检查文件actionhtml: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件事:

  1. 您的<html:checkbox property = "" />代码必须在<html:form></html:form>代码
  2. 范围内
  3. 您的<html:form action="">代码操作属性应与struts配置文件中的<action path="">属性匹配。
  4. 在处理现有代码时,我们可能会忘记应用第二点的更改。

答案 5 :(得分:0)

尝试在表单上实现以下内容:

[String] ${stUserDomain},[String]  ${stUserAccount} = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name.split("\")
相关问题