栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

FreeMarker模板错误!在struts2

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FreeMarker模板错误!在struts2

例外是告诉您确切在哪里查找错误:

org.apache.jasper.JasperException:表达式eKey在template / simple /
fielderror.ftl的 第32行第23列中 未定义 。-类:freemarker.core.TemplateObject

罪魁祸首是

fieldError
无与伦比的
fieldName
经过测试(在注释中),结果为
full_name
显然 在整个链中
未正确处理下划线

<s:textfield id="full_name" name="full_name" ... />...<s:fielderror fieldName="full_name" cssClass="alert-danger"/>

full_name
然后应
fullName
使用变量及其Getter和Setter 更改为与之一样长,以便工作:

<s:fielderror fieldName="fullName" cssClass="alert-danger"/>

还要确保拥有所有最新且一致的struts库和插件,并带有正确版本的外部依赖项(Hibernate验证器等)


就是说,我想给您一些有关变量命名的建议:

  1. 始终对带有多个单词的变量使用camelCase:

    password
    is
    password
    (单个单词,虽然是复合单词),但
    username
    and
    useremail
    应该是
    userName
    and
    userEmail
    。您已针对单个类的6个变量使用了3种不同的约定…

  2. 由于这些是

    User
    Class 的变量,因此请避免
    user
    在变量名称中重复:userid = id,username = name,userPhoneNumber = phoneNumber等…如果您这样做是为了在JSP中提高可读性,则只需避免使用
    <s:push>
    标记可能会感到困惑。

如果您刚开始,更改数据库列名称应该很容易…否则,请在下一个项目中保留此建议。

PS:请注意,使用JPA和Hibernate,您可以在persistence.xml中使用此设置自动使用camelCase变量和带下划线的列名(

phoneNumber
在Entity中,
phone_number
在数据库中):

<property name="hibernate.ejb.naming_strategy"         value="org.hibernate.cfg.ImprovedNamingStrategy" />


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670845.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号