有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jsp如何将JavaBean值转换为网页/表示值?

在原生MVC web项目(不能使用Hibernate或Spring)中,提供“转换表”将bean变量中的值修改为表示友好格式的最佳方式是什么?为每个变量提供定制的“web Getter方法”似乎是糟糕的OO实践

例如:一个名为status的变量可以在peristence层中用值“a”、“I”、“D”或“U”填充,因此它以这种方式存储在bean中。但在页面上,这四个值分别转换为“活动”、“非活动”、“已删除”和“未定义”。在哪里以及如何存放这些翻译知识

(另外,Java webdev社区是否对这种“翻译表”有一个特定的名称?当我在这里搜索一个已经回答过的解决方案时,我有点词汇量不足。)


共 (2) 个答案

  1. # 1 楼答案

    实现这一点的一种常见方法是拥有表示级bean和域数据bean。将代码放入表示bean中,将值从域bean(您已经拥有的域bean)复制到可显示的值。类似地,在提交表单时,也可以在表示bean中转换回代码。(假设您可以在网站上为该数据组件创建

    如果转换代码变得复杂,或者在整个应用程序中各种数据对象的转换之间存在显著的共性,那么您可以将转换提取到一组类,这些类的工作是转换特定类型的数据,或者您可以拥有一些实用程序类,这些实用程序类具有执行公共转换的方法转换,它们被表示bean用来使转换代码小而紧凑

  2. # 2 楼答案

    为此,通常使用资源束,可以使用标准的JSTL{a2}标记访问这些资源束,甚至可以使用JSTL标记在封面下使用的^{} API以编程方式访问这些资源束

    例如com.example.i18n包中的status.properties文件

    status.A = Active
    status.I = Inactive
    status.D = Deleted
    status.U = Undefined
    

    with(前提是您有一个bean,其属性为${bean}

    <fmt:bundle basename="com.example.i18n.status">
        Status: <fmt:message key="status.${bean.status}" />
    </fmt:bundle>
    

    <fmt:bundle basename="com.example.i18n.status" prefix="status.">
        Status: <fmt:message key="${bean.status}" />
    </fmt:bundle>
    

    另请参见: