Struts2 Spring Hibernate Extjs 整合简单用例,extjs代码已经经过优化

本文介绍了一个用户管理Action类的设计与实现,重点讨论了ID处理的问题,并提供了Spring框架配置及ExtJS交互示例。
Action部分,这个部分关于id的处理很不好,但愿有同志能看到给提个醒,怎样做能好一点
package com.james.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import com.james.domain.User;
import com.james.service.UserService;

@Component("usermgr")
@Scope("prototype")
public class UserAction {
	public List<User> users;
    public String userName;
    public String passWord;
    public String telphone;
    public String context;
    public String address;
    public String  id;
    public UserService userService;
    public boolean success=true;
    public User user=new User();
    
    public String save(){
    	System.out.println("action method save get id is:"+id);
    	try {
			int vid=Integer.parseInt(id);
    		this.updata();
		} catch (NumberFormatException e) {
	    	user.setAddress(address);
	    	user.setContext(context);
	    	user.setPassWord(passWord);
	    	user.setTelphone(telphone);
	    	user.setUserName(userName);
	    	userService.save(user);
			// TODO Auto-generated catch block
			//e.printStackTrace();
		}
    	return "success";
    }
    public String del(){
    	int vid=Integer.parseInt(id);

    	userService.del(vid);
    	return "success";
    }
    public String updata(){
    	System.out.println("action method update get id is:"+id);
    	int vid=Integer.parseInt(id);
    	user.setAddress(address);
    	user.setContext(context);
    	user.setPassWord(passWord);
    	user.setTelphone(telphone);
    	user.setUserName(userName);
    	user.setId(vid);
    	userService.update(user);
    	return "success";
    }
    public String findById(){
    	return "success";
    }
    public String findAll(){
    	users=userService.findAll();
    	return "success";
    }
    public List<User> getUsers() {
		return users;
	}
	public void setUsers(List<User> users) {
		this.users = users;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	public String getTelphone() {
		return telphone;
	}
	public void setTelphone(String telphone) {
		this.telphone = telphone;
	}
	public String getContext() {
		return context;
	}
	public void setContext(String context) {
		this.context = context;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String findByName(){
    	return "success";
    }

	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public boolean isSuccess() {
		return success;
	}
	public void setSuccess(boolean success) {
		this.success = success;
	}
	

	@Resource
	public void setUserService(UserService userService) {
		this.userService = userService;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}

}

 

spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">
       <context:annotation-config  />
       <context:component-scan base-package="com.james"/>
       <!-- 数据库配置部分 -->
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
          <property name="driverClassName">
               <value>com.mysql.jdbc.Driver</value>
          </property>
          <property name="url">
               <value>jdbc:mysql://localhost:3306/mydb</value>
          </property>
          <property name="username">
                <value>root</value>
          </property>
          <property name="password">
                <value>a</value>
          </property>
       </bean>
       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <property name="annotatedClasses">
               <list>
                  <value>com.james.domain.User</value>
               </list>
            </property>
            <property name="hibernateProperties">
               <props>
                  <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                  <prop key="hibernate.show_sql">true</prop>
                  <prop key="hibernate.hbm2ddl.auto">update</prop>
               </props>
            </property>
       </bean>
       <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
             <property name="sessionFactory" ref="sessionFactory"></property>
       </bean>
</beans>

 

extjs部分

 

Ext.ns("com.james");
com.james.UserPanel = Ext.extend(Ext.Panel, {
			fields : ['id', 'userName', 'passWord', 'telphone', 'context',
					'address'],
			createEdit:function(){
							this.win = new Ext.Window({
							width : 300,
							height : 300,
							title : "用户维护",
							items : {
								xtype : "form",
								layout : "form",
								items : [
								        {xtype:"hidden",name:"id"},
									   	{
											xtype : "textfield",
											fieldLabel : "姓名",
											name : "userName",
											anchor : "70%"
										}, {
											xtype : "textfield",
											fieldLabel : "密码",
											name : "passWord",
											anchor : "70%"
										}, {
											xtype : "textfield",
											fieldLabel : "电话",
											name : "telphone",
											anchor : "70%"
										}, {
											xtype : "textfield",
											fieldLabel : "地址",
											name : "address",
											anchor : "70%"
										}, {
											xtype : "textarea",
											fieldLabel : "附录",
											name : "context",
											anchor : "70%"
										}]
							},
							buttons : [{
										text : "提交",
										handler : function() {
											this.win.getComponent(0).getForm()
													.submit({
														url : "usermgr!save",
														success : function() {
															Ext.Msg
																	.alert("添加成功");
															this.win.close();
															this.vstore.reload();
														},scope:this
													});
										},scope:this
									}, {
										text : "重置"
									}, {
										text : "取消",
										handler : function() {
											this.win.close();
										}
									}]
						});
			},
			// *********************************************添加用户用户**************************************************************
			//这种方式只要是有回调函数的地方都必须写 scope:this
			adduser : function() {
                this.createEdit();
				this.win.show();
				// ***********************************************************************************************************
			},
			deluser : function() {
				var record =this.grid.getSelectionModel().getSelected();
				var vid = record.get("id");
				Ext.Ajax.request({
							url : "usermgr!del",
							params : {
								id : vid
							},
							callback : function() {
								Ext.Msg.alert("信息提示", "删除成功");
								this.vstore.reload();
							},scope:this
						});
			},
			// ************************************修改用户***********************************************************************
			updateuser : function() {
               this.createEdit();
				this.win.show();
				// 获取当前鼠标选择记录
				var record = this.grid.getSelectionModel().getSelected();
				this.win.getComponent(0).getForm().loadRecord(record);
			},
		  // ***************************初始化窗口********************************************************************************
			initComponent : function() {
				com.james.UserPanel.superclass.initComponent.call(this);
				this.vstore = new Ext.data.JsonStore({
							url : "usermgr!findAll",
							root : "users",
							idProperty : "id",
							fields :this.fields
						});
				var p1 = new Ext.Panel({
							title : "panel1",
							height : 100,
							collapsible : true
						});
				var p2 = new Ext.Panel({
							title : "panel2",
							height : 100,
							collapsible : true
						});
				var p3 = new Ext.Panel({
							title : "panel3",
							height : 100,
							collapsible : true,
							animCollapse : true
						});
				this. grid = new Ext.grid.GridPanel({
							tbar : [{
										text : "添加",
										handler : this.adduser,scope:this
									}, "-", {
										text : "删除",
										handler : this.deluser,scope:this
									}, "-", {
										text : "修改",
										handler : this.updateuser,scope:this
									}],
							store : this.vstore,
							autoHeight : true,
							columns : [{
										header : "编号",
										dataIndex : "id"
									}, {
										header : "姓名",
										dataIndex : "userName"
									}, {
										header : "电话",
										dataIndex : "telphone"
									}, {
										header : "密码",
										dataIndex : "passWord"
									}, {
										header : "备注",
										dataIndex : "context"
									}, {
										header : "地址",
										dataIndex : "address"
									}]
						});
				this.add(this.grid);
				this.vstore.load();
			}
		});

Ext.onReady(function() {
			var up = new com.james.UserPanel({
						title : "jlksfdjklasfdj"
					});
			var vp = new Ext.Viewport({
						layout : "border",
						items : [{
									region : "north",
									height : 200
								}, {
									region : "west",
									width : 200
								}, {
									region : "center",
									items : [up]
								}]
					});
		})

 

基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指标,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定标、噪声抑制及数据标准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
在机器人技术领域,机器人操作系统(ROS)的演进为各类应用提供了关键支撑。计算机视觉与增强现实的结合,进一步拓展了机器人的感知与交互能力。OpenCV作为广泛使用的视觉处理库,集成了多种图像分析与模式识别算法。其中,Aruco标记系统作为一种基于二维码的视觉标识,因其识别稳定、计算高效的特点,被广泛应用于空间定位、姿态估计及增强现实场景的虚实融合。 Aruco标记通过预定义的编码图案,可在复杂环境中实现快速检测与高精度位姿解算。这一特性使其在自主导航、三维重建、目标跟踪等任务中具有重要价值。如,在移动机器人定位中,可通过布设标记点辅助实现厘米级的位置修正;在增强现实应用中,则能依据标记的空间姿态准确叠加虚拟信息。 针对ROS2框架,现已开发出集成OpenCV的Aruco标记检测与位姿估计工具包。该工具能够实时处理图像流,识别标记的独特编码,并解算其相对于相机坐标系的三维位置与旋转姿态。结果可通过ROS2的话题或服务接口发布,为其他功能模块提供实时视觉反馈。工具包兼容多种标准标记字典,用户可根据实际场景的复杂度与识别范围需求,灵活选择不同尺寸与编码数量的标记集合。 将Aruco检测模块嵌入ROS2系统,可充分利用其分布式通信机制与模块化架构。开发者能够便捷地将视觉定位数据与运动规划、控制决策等模块相融合,进而构建更为综合的机器人应用系统。如,结合点云处理技术可实现动态环境的三维建模,或与机械臂控制器联动完成基于视觉引导的精准抓取操作。 该开源工具的推出,降低了在ROS2中部署视觉定位功能的技术门槛。通过提供稳定、可配置的标记识别与姿态解算方案,它不仅促进了机器人视觉应用的快速原型开发,也为后续在工业自动化、服务机器人、混合现实等领域的深入应用奠定了技术基础。随着感知算法与硬件性能的持续提升,此类融合视觉、增强现实与机器人中间件的工具包,将在智能化系统的构建中发挥日益重要的作用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值