EWeb4j-1.b.6.5 新的特性介绍—mvc action篇

本文介绍了一种简化配置的MVC框架实现方法,包括控制器约定、性能优化、自动识别POJO参数等功能,旨在提高开发效率并降低复杂性。
(1) Controller支持以下约定:
action方法不填写注解RequestMapping的时候,默认以方法名为url-mapping值。
action 方法返回类型为void的时候框架不做任何跳转处理。
缺省返回值忽略大小写。例如ajax。
类名如果以“Controller”,“Control”,“Action”结尾的话,可以不用添加@Controller注解,框架也能识别为控制器。
这里有个最新的例子:
package test.controller;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import test.po.Pet;
import com.cfuture08.eweb4j.mvc.annotation.Param;

/**
* this is a pojo action test
*
* 约定代替配置,可以看到整个action类真正实现0配置! 方法名——> URL访问映射。 属性名——>URL参数名
* 类名以Controller、Control、Action结尾的框架以控制器处理。
*
* 并且action类兼容Struts2和SpringMVC3的写法。
*
* @author weiwei
*
*/
public class ZeroConfigAction {

/**
* 从当前会话中获取输出对象进行页面打印。 只需要声明即可,框架会自行注入。
* 返回类型为void、返回值为ajax(忽略大小写)、null的时候,访问action后,框架不会做任何跳转。
*
* @param out
*/
public void sayHello(PrintWriter out) {
out.print("Hello!");
}

/**
* 重定向跳转
*
* @return
*/
public String testRedirect() {
return "redirect:sayHello";
}

/**
* 服务端跳转
*
* @return
*/
public String testForward() {
return "index.jsp";// or "forward:index.jsp"
}

/**
* pojo action 的属性与url属性绑定,同时方法参数传递(框架实现)
*
* @param out
*/
public void testPojoParam(PrintWriter out) {
out.print(info);
}

/**
* 当pojo action 的属性是pojo的时候,支持无限嵌套的参数绑定。 当然,方法的参数是pojo这种情况也是一样的。
*
* @param out
* @param fuck
*/
public void testPojoParamAndUrlParam(PrintWriter out,
@Param("fuck") String fuck) {
out.print("fuck-->" + fuck + "pet.master-->" + pet.getMaster());
}

/**
* pojo action 的属性有四个缺省值,只要声明+setter&getter方法。框架就会在运行时刻实例化它们,并且传入当前会员的上下文。
* 这四个参数是:HttpServletRequest,HttpServletResponse,PrintWriter,HttpSession
*/
public void testOut() {
out.print("out-->" + info);
}

// ------------------------------------------------------
private Pet pet;
private String info;
private HttpServletRequest req;
private PrintWriter out;
public String getInfo() {return info;}
public void setInfo(String info) {this.info = info;}
public Pet getPet() {return pet;}
public void setPet(Pet pet) {this.pet = pet;}
public HttpServletRequest getReq() {return req;}
public void setReq(HttpServletRequest req) {this.req = req;}
public PrintWriter getOut() {return out;}
public void setOut(PrintWriter out) {this.out = out;}
}

(2)mvc中,为了改进性能,将Class.forName(ActionBeanName),改为缓存方式调用。这样省去了lookup的过程,效能会提升。当系统需要应对高并发的时候,很有效。
(3)废除了formBean的配置,框架自动识别pojo参数,并且支持无限嵌套pojo属性。无需任何配置。

约定优于配置、零配置将会是这个版本较重要的关注点,但不是唯一的。

待续......
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值