-1

我是 Struts 的新手。我为视图提供了一个模型 courseBean 以捕获信息。

如果我以正确的形式输入正确的信息,它会完美运行。否则,如果我输入错误的格式,它会抛出异常。

说,我输入abcdcourseBean.startDate,它会抛出异常,因为abcd无法更改为Date格式。

有什么方法可以防止这些异常吗?或者我应该创建一个新的 Bean 类并将该类的所有属性设置为字符串?

            <!--Title-->
            <div class="control-group">
                <label class="control-label" for="inputEmail">Title:</label>
                <div class="controls">
                    <input type="text" name="courseBean.title" placeholder="Title" value="<s:property value="courseBean.title" />"/>
                </div>
            </div>

         <!--Start Date-->
        <div class="control-group">
            <label class="control-label" for="inputPassword">Start Date:</label>
            <div class="controls">
                <input type="text" readonly="readonly" name="courseBean.startdate" placeholder="Start Date" value="<s:property value="courseBean.startdate" />" />
            </div>
        </div>

这个问题的重点是 Bean 输入的自动数据格式约定

例如当我在映射到courseBean.feeWARNING: Error setting expression 'courseBean.fee' with value '[Ljava.lang.String;@1b40489'的文本字段中输入“”

4

1 回答 1

1

首先,您必须验证用户在表单中输入的数据。这可以通过多种方式完成,使用注释(验证注释部分)、使用XML或使用您的操作中的简单validate()方法。如果官方文档不够,您可以在 Internet 上搜索大量有关如何使用 Struts2 验证数据的示例。

然后我想添加一些与你的jsp相关的东西。Struts2 有内置的标签,可以渲染很多东西,并帮助您与 jsps 交流动作。如果我们谈论的是表单,例如,我们<s:form>可以帮助您,例如,不要在 HTML 表单中对操作的 url 进行硬编码,或者<s:textfield>对呈现验证错误很有用。

如果问题是您想使用 Twitter Bootstrap 表示法来构建您的页面,那么有一个插件可以呈现 HTML 以准备使用该 CSS 框架。

编辑

WARNING: Error setting expression 'courseBean.fee' 
with value '[Ljava.lang.String;@1b40489'

您的方法的问题是您试图将 a 分配给String []一个可能不是 a 的字段String [](也许它是 a Date)。您必须获取String并解析它才能将其转换为Date对象。此外,如果您不知道如何使用 Struts2<s:textfield>以及如何<s:form>工作,您应该看看这个教程。它可能对你有帮助。

于 2012-12-11T12:10:48.433 回答