Struts2【UI标签、数据回显、资源国际化】(二)

简介: Struts2【UI标签、数据回显、资源国际化】

Struts2标签:checkboxlist

参考自博文:http://www.blogjava.net/koradji/articles/307399.html

语法:

<s:checkboxlist name="" list="" listKey="" listValue="" value="" />

  • name定义标签名,用于接收画面上选中的复选框,故应与Action里定义的属性一致,且多为数组;
  • list定义集合变量,用于输出复选框到画面上,一般在Action里定义一个List或Map属性;
  • listKey如果在Action里定义的是一个List,则往往会在List里定义一个Bean,它只有两个属性,其中一个(比如id)就在这里设置;
  • 如果在Action里定义的是一个Map,则Map的key就在这里设置;
  • listValue如果在Action里定义的是一个List,则往往会在List里定义一个Bean,它只有两个属性,另外一个(比如name)就在这里设置
  • 如果在Action里定义的是一个Map,则Map的value就在这里设置;
  • value用于回显画面上被选中的复选框,假如画面有输入检查,如果有错则返回原画面并显示出错信息,这时候就需要使用它。
  • 一般把它设成和name一致就可以了。

例子:

查询了所有的角色,得到用户与角色的所有id了。把封装到数组中。

public String editUI() {
        //把所有的角色查询出来,带过去给JSP页面显示
        ActionContext.getContext().getContextMap().put("roleList", roleServiceImpl.findObjects());
        //外边已经传了id过来了,我们要找到id对应的User
        if (user != null &&user.getId() != null  ) {
            //直接获取出来,后面JSP会根据User有getter就能读取对应的信息!
            user = userServiceImpl.findObjectById(user.getId());
            //通过用户的id得到所拥有UserRole
            List<UserRole> roles = userServiceImpl.findRoleById(user.getId());
            //把用户拥有角色的id填充到数组中,数组最后回显到JSP页面
            int i=0;
            userRoleIds =  new String[roles.size()];
            for (UserRole role : roles) {
                userRoleIds[i++] = role.getUserRoleId().getRole().getRoleId();
            }
        }
        return "editUI";
    }

name值的是数组,可以用于自动回显。Action得到角色的id也是通过它

<s:checkboxlist list="#roleList" name="userRoleIds" listKey="roleId" listValue="name"></s:checkboxlist>

资源国际化


我们在学JSTL标签的时候就涉及到了资源国际化,,,但是呢,在JSP的章节我并没有写博文来讲解怎么弄….一方面感觉JSP的资源国际化好麻烦,另一方面是感觉用的地方很少…..因此就没有深入去了解它…

今天呢,学习到了Struts2的资源国际化了。重新看回JSP资源国际化的步骤,再对比一下Struts的资源国际化

Servlet和Struts资源国际化区别


在Servlet写资源国际化的步骤:

  • 写资源文件
  • 基础名.properties【默认】
  • 基础名语言简称   国家简称.properties
  • 读取配置文件
  • jstl提供的格式化与国际化标签库。

在Struts2写资源国际化的步骤:

  • 写资源文件
  • 基础名.properties【默认】
  • 基础名语言简称   国家简称.properties
  • 读取配置文件再使用
  • **struts标签获取资源文件内容 **

区别:

Struts2加载资源文件更加简单,通过常量配置即可!提供的Struts标签更简单使用


资源国际化Demo

下面就使用Struts来写一个资源国际化的Demo….

写资源文件

值得注意的是:在IDEA下写properties资源文件,如果涉及到中文,默认是不会帮我们编码的。它是不像eclipse的…因此需要我们手动去设置的……设置的教程在我的IDEA博文中有…如果出现了这个问题,那就去IDEA博文下找呗。。。

微信图片_20220221160742.jpg这里写图片描述

在Struts中使用常量加载资源文件

我们直接在Struts中使用contant节点来加载我们自己写的配置文件。值得注意的是:value的值是文件的全名(也就是说,如果有包,就把包名写上)….并且,不需要写上后缀

<constant name="struts.custom.i18n.resources" value="msg"></constant>

微信图片_20220221160745.jpg这里写图片描述


Struts标签使用国际化


name的值是配置文件中配置的信息,写上就行了!


<head>
    <title><s:text name="title"></s:text></title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
</head>
<body>
<form method="post" action="${pageContext.request.contextPath }/user_login.action">
    <s:text name="username"></s:text> <input name="admin.userName"><br/>
    <s:text name="psd"></s:text><input type="text" name="admin.pwd"><br/>
    <input type="submit" value="登陆"><br/>
</form>
</body>

测试


注意,title已经替换成了中文了!!

微信图片_20220221160748.jpg这里写图片描述

目录
相关文章
|
资源调度 前端开发
前端项目实战叁拾-​react-admin+material ui-页面配置国际化
前端项目实战叁拾-​react-admin+material ui-页面配置国际化
85 0
前端项目实战叁拾-​react-admin+material ui-页面配置国际化
|
XML 编解码 C#
.NET MAUI 安卓 UI 资源设置
本文主要介绍使用 MAUI 开发安卓应用时,如何更换和处理 UI 资源:应用名称,图标,主题配色,状态栏,闪屏。
621 0
.NET MAUI 安卓 UI 资源设置
|
存储 Java
Struts2【UI标签、数据回显、资源国际化】(一)
Struts2【UI标签、数据回显、资源国际化】
136 0
Struts2【UI标签、数据回显、资源国际化】(一)
|
前端开发 Java
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)下
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)
200 0
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)下
|
前端开发 Java
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)中
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)
164 0
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)中
|
前端开发 JavaScript Java
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)上
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)
171 0
Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)上
|
Java 数据安全/隐私保护
Struts2【UI标签、数据回显、资源国际化】
Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签...也就是显示页面的标签..... 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再被浏览器解析,最后才显示在页面上的。
1327 0
|
14天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
2月前
|
开发框架 JavaScript 前端开发
鸿蒙NEXT开发声明式UI是咋回事?
【10月更文挑战第15天】鸿蒙NEXT的声明式UI基于ArkTS,提供高效简洁的开发体验。ArkTS扩展了TypeScript,支持声明式UI描述、自定义组件及状态管理。ArkUI框架则提供了丰富的组件、布局计算和动画能力。开发者仅需关注数据变化,UI将自动更新,简化了开发流程。此外,其前后端分层设计与编译时优化确保了高性能运行,利于生态发展。通过组件创建、状态管理和渲染控制等方式,开发者能快速构建高质量的鸿蒙应用。
122 3
|
1月前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
91 8