Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp Struts2:在迭代器中更新文本字段时出现问题_Jsp_Struts2 - Fatal编程技术网

Jsp Struts2:在迭代器中更新文本字段时出现问题

Jsp Struts2:在迭代器中更新文本字段时出现问题,jsp,struts2,Jsp,Struts2,我在尝试更新某些数据时遇到了一些问题,我遇到了一些异常 我读过并应用了修改,但它不起作用 以下是Java类: public class Epreuveevb implements Serializable { /** * */ private static final long serialVersionUID = 1L; private int idEpreuve; private String nom; private int

我在尝试更新某些数据时遇到了一些问题,我遇到了一些异常

我读过并应用了修改,但它不起作用

以下是Java类:

 public class Epreuveevb implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private int idEpreuve;
    private String nom;
    private int coef;
    private int note;
    private int idExamen;

/* all setters and getters */
然后第二个:

public class Examenevb implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private int idJury;
    private String nom;
    private String prenom;
    private List<Epreuveevb> listeEpreuves = null;

/* all setters and getters */
怎么了?有什么想法吗


我检查了好几次setters/getter,一切都很好…

我刚刚解决了问题,现在一切正常。但我希望得到建议,因为可能存在更好的解决方案。如果有,请告诉我

让我告诉你我带来了哪些修改

首先,我忘记了epreuvevb和Examenevb类的空构造函数

其次,我向ActionSupport类添加了可准备和模型驱动的接口:

public class Saisie extends ActionSupport implements Preparable,    
    ModelDriven<List<Examenevb>> {

        static final Logger log = LogManager.getLogger(Saisie.class);

        private int idJury;
        private Jury leJury;
        private List<Examenevb> lesExamens;
        private int idPassageGrade;
公共类Saisie扩展了ActionSupport实现了Preparable,
模型驱动{
静态最终记录器log=LogManager.getLogger(Saisie.class);
私人陪审团;
私人陪审团;
列斯曼私人名单;
私人综合职系;;
这些接口强制我使用两种附加方法:

@Override
    public List<Examenevb> getModel() {
        // TODO Auto-generated method stub
        return lesExamens;
    }

    @Override
    public void prepare() throws Exception {
        // TODO Auto-generated method stub
    }
@覆盖
公共列表getModel(){
//TODO自动生成的方法存根
返回lesExamens;
}
@凌驾
public void prepare()引发异常{
//TODO自动生成的方法存根
}
最后,JSP变得更重一些:

    <s:form theme="simple" action="relevernote">
    <table class="notation">
        <tbody>
            <s:iterator value="lesExamens" status="idexam">
            <tr>
                <td class="default">
                    <span class="gras">${nom}</span>, ${prenom}
                    <s:hidden name="lesExamens[%{#idexam.index}].idJury"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].idAdherent"/>"
                    <s:hidden name="lesExamens[%{#idexam.index}].nom"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].prenom"/>

                </td>
                <s:iterator value="listeEpreuves" status="idepr">
                <td>
                    ${nom}<br/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].idEpreuve"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].idExamen"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].coef"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].nom"/>
                    <s:textfield name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].note"/>
                    <p>&nbsp;</p>
                </td>
                </s:iterator>
            </tr>
            </s:iterator>
        </tbody>
    </table>
    <p class="center"><s:submit value="Valider"/></p>
    </s:form>

${nom},${prenom}
"
${nom}


为了确保设置了所有属性,我添加了几个标记……也许有更好的方法。如果是这样,请告诉我。

我更改了Examenevb类,删除了“private List ListePrueves=null;”并将其替换为“private List ListePrueves;"。不幸的是,错误仍然存在…确保您有正确的getter和setter Hello Roman,我刚刚检查了所有setter和getter,一切正常。但是,我正在阅读一本关于Struts2的书。我可能已经找到了一个解决方案:使用Preparable接口。希望我能解决这个问题…
Preparable
被另一个拦截器使用。它还有一个其他含义。请告诉我:可准备的规则是什么?我已经几乎解决了我的问题,使用ModelDriven和Preparable。稳定后,我会报告它。
    2017-05-16 17:29:44,910 ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor [notifyDeveloperParameterException] Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'lesExamens[0].listeEpreuves[0].note' on 'class evb.pg.notation.Saisie: Error setting expression 'lesExamens[0].listeEpreuves[0].note' with value ['0', ]
2017-05-16 17:29:44,914 ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor [notifyDeveloperParameterException] Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'lesExamens[0].listeEpreuves[1].note' on 'class evb.pg.notation.Saisie: Error setting expression 'lesExamens[0].listeEpreuves[1].note' with value ['0', ]
public class Saisie extends ActionSupport implements Preparable,    
    ModelDriven<List<Examenevb>> {

        static final Logger log = LogManager.getLogger(Saisie.class);

        private int idJury;
        private Jury leJury;
        private List<Examenevb> lesExamens;
        private int idPassageGrade;
@Override
    public List<Examenevb> getModel() {
        // TODO Auto-generated method stub
        return lesExamens;
    }

    @Override
    public void prepare() throws Exception {
        // TODO Auto-generated method stub
    }
    <s:form theme="simple" action="relevernote">
    <table class="notation">
        <tbody>
            <s:iterator value="lesExamens" status="idexam">
            <tr>
                <td class="default">
                    <span class="gras">${nom}</span>, ${prenom}
                    <s:hidden name="lesExamens[%{#idexam.index}].idJury"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].idAdherent"/>"
                    <s:hidden name="lesExamens[%{#idexam.index}].nom"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].prenom"/>

                </td>
                <s:iterator value="listeEpreuves" status="idepr">
                <td>
                    ${nom}<br/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].idEpreuve"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].idExamen"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].coef"/>
                    <s:hidden name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].nom"/>
                    <s:textfield name="lesExamens[%{#idexam.index}].listeEpreuves[%{#idepr.index}].note"/>
                    <p>&nbsp;</p>
                </td>
                </s:iterator>
            </tr>
            </s:iterator>
        </tbody>
    </table>
    <p class="center"><s:submit value="Valider"/></p>
    </s:form>