Struts 2.x学习----------------UI标签

本文探讨了Struts2框架中UI标签的应用技巧,包括如何避免模板干扰布局、使用标签生成下拉列表和复选框等内容。

学习记录:

在Struts 2.x里面本意是希望方便用户的开发,所以在许多的标签上都是用了操作模板,但是在实际的布局中会发现这些模板如果出现则会破坏布局要求
范例:观察表单问题
<s:form action="FormAction.action" method="post">
         <s:textfield key="name" label="用户名"/>
         <s:submit vaule="发送"/>
</s:form>
-----------------------------------------------------------生成代码
<form id="FormAction" name="FormAction" action="FormAction.action" method="post">
    <table class="wwFormTable">
        <tr>
            <td class="tdLabel"><label for="FormAction_name" class="label">用户名:</label></td>
            <td><input type="text" name="name" value="" id="FormAction_name"/></td>
        </tr>
        <tr>
            <td colspan="2"><div align="right"><input type="submit" id="FormAction_0" value="Submit" vaule="发送"/></div></td>
        </tr>
    </table>
</form>
这个时候如果使用了UI标签就必须承受这些生成代码所带来的问题,但是为了解决这种布局带来的混乱,所以取消掉使用的页面模板
范例:取消模板
<s:form action="FormAction.action" method="post" theme="simple">
         <s:textfield key="name" label="用户名" theme="simple" />
         <s:submit vaule="发送" theme="simple"/>
</s:form>
此时虽然取消了布局代码对页面的影响,但是对于前端工程师来讲依然无法知道此类代码,这些是标签,在直白界面下无法显示,如果说有美工要进行修饰,那么美工还必须自己搭建好服务器,设置好Struts,完全不靠谱
如果公正的来讲,UI标签在一些组件的生成上还是挺方便的,例如,现在要传递一个组部门信息,下网可以生成下拉列表框
范例:在Action保存一组部门信息
public class FormAction extends ActionSupport {
    public String execute() throws Exception{
        List<Dept> all=new ArrayList<Dept>();
        for(int i=0;i<5;i++){
            Dept dept=new Dept();
            dept.setDeptno(i);
            dept.setDname("技术部--"+i);
            all.add(dept);
        }
        ServletActionContext.getRequest().setAttribute("allDepts",all);
        return "form.show";
    }
}
如果此时页面中要想输出下拉列表框,有两种选择,一种是利用循环采用迭代的方式输出每一个下拉的列表项,另外一种是使用Struts 2.x标签生成
范例:利用标签生成
<s:select list="#request.allDepts" listKey="deptno" listValue="dname" id="dept" name="dept" theme="simple"/>
除了生成下拉列表框之外也可以生成复选框
范例:利用标签生成复选框
部门:<s:checkboxlist list="#request.allDepts" listKey="deptno" listValue="dname" id="dno" name="dno"/>
如果要想接收复选框的内容,可以在Action里面定义数组
范例:接收复选框
private Integer[] dno;//与复选框组件的参数名称相同
    public void setDno(Integer[] dno){
        this.dno=dno;
}
public String execute() throws Exception{
        System.out.println("-------------"+Arrays.toString(this.dno));
        List<Dept> all=new ArrayList<Dept>();
        for(int i=0;i<5;i++){
            Dept dept=new Dept();
            dept.setDeptno(i);
            dept.setDname("技术部--"+i);
            all.add(dept);
        }
        ServletActionContext.getRequest().setAttribute("allDepts",all);
        return "form.show";
}
此时发现不管是单值还是一个数组,都可以自动实现转型并且自动赋值

内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值