MVC框架-Mentawai(3)

Action的input和output

基础Action input概念

action的input,提供获取boolean、double、float、int、Object值的方法,它可以执行必要的转换也可以提供默认值。它也可以从http请求(通过反射)和http头信息获取属性(远程地址、方法、授权类型等)。你也可以通过keys()方法列出所有的action输入key。默认的实现是RequestInput。下面是以下用法示例:

// 从input获取字符串
String username = input.getString("username");

// 从input获取code并转换为int,如果没有code,code的默认值为100
int code = input.getInt("code", 100);

// 从input获取boolean值
boolean accepted = input.getBoolean("accepted", false);

// 复选框: 获取 key为 "interest"的数组
int[] interestsAsInt = input.getInts("interest");
String[] interestsAsString = input.getStrings("interest");

// 从input中获取对象
MyObject obj = (MyObject) input.getValue("myObject");

// 列出所有的key和其对应值
Iterator<String> iter = input.keys();

while(iter.hasNext()) {

    String key = iter.next();

    Object value = input.getValue(key);

    System.out.println("Key: " + key + " / Value: " + value.toString());
}

// 检查input是否有指定key值
boolean hasKey = input.hasValue("code");

// 从input获取header
String agent = input.getHeader("User-Agent");

// 从input获取属性
String ip = input.getProperty("remoteAddr"); // IP of the request...

通过Action input的一个方法获取并组装一个Object的属性值

下面来说一下通过Action输入实例化一个User实体的所有属性,你可以通过一个个属性实例化User也可以通过getObject()方法实例化User

// 从ation input中出现的任何属性通过反射实例并组装User对象
User user = input.getObject(User.class);

// 你也可以注入一个已经存在的实例化对象, 
// 这对更新对象的某些属性是非常有帮助的
User user = userDAO.loadById(userId);
input.inject(user);
userDAO.update(user);

最基本action output概念
Action output更像是一个map,你可以设置字符串的key,这些输出会在之后通过jsp,velocity模板,json等渲染给客户端。

output.setValue("username", username);

output.setValue("user", user);

boolean isEmpty = output.isEmpty();

// 列出所有output key和对应值
Iterator<String> iter = output.keys();

while(iter.hasNext()) {

    String key = iter.next();

    Object value = output.getValue(key);

    System.out.println("Key: " + key + " / Value: " + value.toString());

假如你想在Action的返回结果中返回User对象。你可以将整个对象放到输出中并让视图决定使用哪些属性或者你可以提取。当你使用需要展示user对象所有属性的html表单时会非常有用。

User user = userDAO.loadById(userId);
output.setValue("theUser", user);

//或者

output.setObject(user); // that will extract all the properties and place them in the output for the view
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设方案旨在通过信息化手段提升教育、管理和服务水平,实现资源数字化、工作流程化、管理高效化和决策智能化。方案包括智慧校园信息化平台和安防平台的建设,涉及教学、科研、管理和服务等多个方面,以满足现代教育和培训需求。 技术服务要求强调了统一支撑平台的建设,包括数据标准、接口标准、代码标准和用户信息标准的统一制定。平台需满足信创和X86交叉适配要求,确保安全自主可控的系统开发环境。此外,方案还涵盖了用户中心系统、统一认证授权中心、统一工作流中心、统一智能报表中心等多个模块,以及数据共享中心、语音识别、移动服务终端等功能,以实现校园内外部信息的互联互通和资源共享。 智慧校园信息化平台的建设还包括了对教学管理、人事管理、公文管理、档案管理、即时通讯、会议管理、督办工作、资产管理等方面的数字化和自动化升级。这些模块的集成旨在提高工作效率,优化资源配置,加强监督管理,并通过移动应用等技术手段,实现随时随地的信息访问和业务处理。 安防平台的建设则侧重于校园安全,包括停车场管理、人脸识别测温、访客自助登记、视频监控等多个系统。这些系统的集成旨在提高校园的安全管理水平,实现对校园内外人员和车辆的有效监控和管理,确保校园环境的安全稳定。 最后,方案还提到了对固定资产的管理,包括购置、使用、归还、报废等全生命周期的管理,以及对网络设备、安防设备、服务器等硬件设施的配置和管理。通过这些措施,智慧校园建设方案旨在为校园提供一个安全、高效、便捷的学习和工作环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值