idea struts插件_使用Struts 2的查询网格(无插件)

idea struts插件

当将jQuery与struts 2结合使用时,开发人员被说服使用struts2-jQuery插件 。 因为大多数论坛和其他Internet资源都支持jQuery struts2 jQuery插件。我有这种经验。 我想使用带有struts 2的jQuery网格插件,但不使用struts2 jQuery插件。 对于我而言,很难找到无需使用struts2 jQuery插件即可实现struts 2动作类以创建jQuery网格的教程或任何好的资源。 最后,我自己解决了这个问题,并打算为您提供方便。

本教程介绍了如何在不使用插件的情况下使用struts2创建jQuery网格。 我从现有项目中过滤掉了这段代码。 该项目的体系结构基于strts2,spring和hibernate集成环境。 我敢肯定,您可以自定义这些代码,使其适合您的环境。
步骤01: 为“ ”主屏幕创建实体类。

我将JPA用作持久性技术,并使用spring( HibernateDaoSupport )提供的Hibernate数据访问支持。 我不会详细解释这些东西。 我主要关心的是如何创建支持jQuery网格的struts 2动作类。 这是我的实体类。

Province.java

/*** */
package com.shims.model.maintenance;import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;import org.hibernate.annotations.Cascade;import com.shims.model.Audited;/*** @author Semika Siriwardana**/@Entity@Table(name='PROVINCE') public class Province extends Audited implements Serializable {private static final long serialVersionUID = -6842726343310595087L;@Id@SequenceGenerator(name='province_seq', sequenceName='province_seq')@GeneratedValue(strategy = GenerationType.AUTO, generator = 'province_seq')private Long id;@Column(name='description', nullable = false)private String name;@Column(name='status', nullable = false)private char status;/*** */public Province() {super();}/*** @param id*/public Province(Long id) {super();this.id = id;}/*** @return the id*/public Long getId() {return id;}/*** @param id the id to set*/public void setId(Long id) {this.id = id;}/*** @return the name*/public String getName() {return name;}/*** @param name the name to set*/public void setName(String name) {this.name = name;}/*** @return the status*/public char getStatus() {return status;}/*** @param status the status to set*/public void setStatus(char status) {this.status = status;}
}

步骤02: 为“省”主屏幕网格创建JSP文件

请记住,jQuery网格是jQuery的插件。 因此,您需要下载jQuery网格插件的相关CSS文件和JS文件。 您可能需要在JSP文件的开头部分包含以下资源。

<link type='text/css' rel='stylesheet' media='screen' href='<%=request.getContextPath()%>/css/jquery/themes/redmond/jquery-ui-1.8.16.custom.css'>
<link type='text/css' rel='stylesheet' media='screen' href='<%=request.getContextPath()%>/css/ui.jqgrid.css'>
<script src='<%=request.getContextPath()%>/js/jquery-1.6.2.min.js' type='text/javascript'></script>
<script src='<%=request.getContextPath()%>/js/grid.locale-en.js' type='text/javascript'></script>
<script src='<%=request.getContextPath()%>/js/jquery.jqGrid.src.js' type='text/javascript'></script>
<script src='<%=request.getContextPath()%>/js/jquery-ui-1.8.16.custom.min.js' type='text/javascript'></script>

然后,我们将在JSP文件中创建所需的DOM内容以呈现网格。 为此,您只需要在JSP文件中放置一个简单的TABLE和DIV元素,并具有给定的ID,如下所示。

<table id='list'></table> 
<div id='pager'></div>

需要在“ 寻呼机 ” DIV标签来显示jQuery的网格的分页栏。

步骤03: 为“省”主屏幕网格创建JS文件。

jQuery网格需要使用javascript启动。 我将在加载页面时启动网格。 有很多功能,如添加新记录,更新记录,删除记录,jQuery网格支持的搜索。 我想,如果您可以创建初始网格,则可以熟悉这些内容。 此javascript仅包含启动网格的代码。

var SHIMS = {}
var SHIMS.Province = {onRowSelect: function(id) {//Handle event},onLoadComplete: function() {//Handle grid load complete event.},onLoadError: function() {//Handle when data loading into grid failed. },/*** Initialize grid*/initGrid: function(){jQuery('#list').jqGrid({ url:CONTEXT_ROOT + '/secure/maintenance/province!search.action', id:'gridtable', caption:'SHIMS:Province Maintenance',datatype: 'json', pager: '#pager', colNames:['Id','Name','Status'], pagerButtons:true,navigator:true,jsonReader : {root: 'gridModel', page: 'page',total: 'total',records: 'records',repeatitems: false,      id: '0'      }, colModel:[ {name:'id',index:'id', width:200, sortable:true, editable:false, search:true},{name:'name',index:'name', width:280, sortable:true, editable:true, search:true, formoptions:{elmprefix:'(*)'},editrules :{required:true}},{name:'provinceStatus',index:'provinceStatus', width:200, sortable:false, editable:true, search:false, editrules:{required:true}, edittype:'select', editoptions:{value:'A:A;D:D'}}], rowNum:30, rowList:[10,20,30], width:680,rownumbers:true,viewrecords:true, sortname: 'id', viewrecords: true, sortorder: 'desc', onSelectRow:SHIMS.Province.onRowSelect, loadComplete:SHIMS.Province.onLoadComplete,loadError:SHIMS.Province.onLoadError,editurl:CONTEXT_ROOT + '/secure/maintenance/province!edit.action' });},/*** Invoke this method with page on load.*/onLoad: function() {this.initGrid();}
};

我想重点介绍上述代码中的一些代码片段。 网格初始化对象的' jsonReader '属性是很难找到的关键点,并且花费了大量时间使网格能够正常工作。
–这应该是对象列表。
page –当前页码。 总数 –这是总页数。 例如,如果您有1000条记录且页面大小为10,则“总计”值为100。

记录记录总数或记录数。

如果要使用JSON数据创建网格,则指定的“ url ”的响应应为这种格式的JSON响应。 下面显示了示例JSON响应。

{'gridModel':[{'id':15001,'name':'Western','provinceStatus':'A'},{'id':14001,'name':'North','provinceStatus':'A'},{'id':13001,'name':'North Central','provinceStatus':'A'},{'id':12002,'name':'East','provinceStatus':'A'},{'id':12001,'name':'Southern','provinceStatus':'A'}],
'page':1,
'records':11,
'rows':30,
'sidx':'id',
'sord':'desc',
'total':2}

以上字段应在操作类中声明并适当更新。 我稍后再说。 如果您打算使用添加记录,删除记录,更新记录,搜索等操作,则必须指定“ editurl ”。

在JSP文件中,在close body标记的上方,我放置了以下脚本来调用网格初始化代码。

var CONTEXT_ROOT = '<%=request.getContextPath()%>';jQuery(document).ready(function(){SHIMS.Province.onLoad();});

步骤04: 为“省”主屏幕网格创建Struts2动作类。

这是本教程最重要的部分。

ProvinceAction.java

/*** */
package com.shims.web.actions.maintenance.province;import java.util.List;import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;import com.opensymphony.xwork2.ModelDriven;
import com.shims.dto.Page;
import com.shims.dto.ProvinceDto;
import com.shims.model.maintenance.Province;
import com.shims.service.maintenance.api.ProvinceService;
import com.shims.support.SHIMSSoringSupport;
import com.shims.web.actions.common.BaseAction;
import com.shims.web.common.WebConstants;/*** @author Semika Siriwardana**/@Controller@Namespace(WebConstants.MAINTENANCE_NAMESPACE) @ParentPackage(WebConstants.MAINTENANCE_PACKAGE)@Results({@Result(name=ProvinceAction.SUCCESS, location='/jsp/maintenance/province.jsp'), @Result(name = 'json', type = 'json')}) public class ProvinceAction extends BaseAction<Province> implements ModelDriven<Province> {private static final long serialVersionUID = -3007855590220260696L;private static Logger logger = Logger.getLogger(ProvinceAction.class);@Autowiredprivate ProvinceService provinceService;private List<Province> gridModel = null;private Province model = new Province();private Integer rows = 0;private Integer page = 0;private String sord;private String sidx;private Integer total = 0;private Integer records = 0;@Overridepublic String execute() {return SUCCESS;}/*** Search provinces* @return*/public String search() throws Exception {Page<Province> resultPage = provinceService.findByCriteria(model, getRequestedPage(page));List<Province> provinceList = resultPage.getResultList(); setGridModel(provinceList); setRecords(resultPage.getRecords());setTotal(resultPage.getTotals());return JSON;}/*** @return the gridModel*/public List<Province> getGridModel() {return gridModel;}/*** @param gridModel the gridModel to set*/public void setGridModel(List<Province> gridModel) {this.gridModel = gridModel;}/*** @return the page*/public Integer getPage() {return page;}/*** @param page the page to set*/public void setPage(Integer page) {this.page = page;}/*** @return the rows*/public Integer getRows() {return rows;}/*** @param rows the rows to set*/public void setRows(Integer rows) {this.rows = rows;}/*** @return the sidx*/public String getSidx() {return sidx;}/*** @param sidx the sidx to set*/public void setSidx(String sidx) {this.sidx = sidx;}/*** @return the sord*/public String getSord() {return sord;}/*** @param sord the sord to set*/public void setSord(String sord) {this.sord = sord;}/*** @return the total*/public Integer getTotal() {return total;}/*** @param total the total to set*/public void setTotal(Integer total) {this.total = total;}/*** @return the records*/public Integer getRecords() {return records;}/*** @param records the records to set*/public void setRecords(Integer records) {this.records = records;}@Overridepublic Province getModel() {return model;}}

getRequestedPage()方法是在'BaseAction'类中实现的通用方法,该类返回给定类型的'Page'实例。

BaseAction.java

/*** */
package com.shims.web.actions.common;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ActionSupport;
import com.shims.dto.Page;
import com.shims.dto.security.UserDto;
import com.shims.web.common.WebConstants;import flexjson.JSONSerializer;/*** @author Semika Siriwardana**/public abstract class BaseAction<T> extends ActionSupport implements ServletRequestAware, SessionAware {private static final long serialVersionUID = -8209196735097293008L;protected static final Integer PAGE_SIZE = 10;protected HttpServletRequest request;protected Map<String, Object> session; protected String JSON = 'json';public abstract String execute(); public HttpServletRequest getRequest() {return request;}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;}protected void setRequestAttribute(String key, Object obj) {request.setAttribute(key, obj);}/*** Returns generic Page instance.* @param domain* @param employeeDto* @return*/protected Page<T> getRequestedPage(Integer page){Page<T> requestedPage = new Page<T>(); requestedPage.setPage(page);requestedPage.setRows(PAGE_SIZE);return requestedPage;}/*** @return the session*/public Map<String, Object> getSession() { return session;}/*** @param session the session to set*/public void setSession(Map<String, Object> session) { this.session = session;}}

我已经解释了“ gridModel ”,“ 页面 ”,“ 总计 ”和“记录 ”。 当我们使用某些列对网格中的数据进行排序时,jQuery网格会传递被称为“排序顺序”和“排序索引”的“ sord ”和“ sidx ”。 要获取这些拖曳字段,我们应该在action类中使用声明它,并提供setter和getter方法。 稍后,我们可以基于两个参数对数据列表进行排序。

步骤05: 实施服务方法。

从这里开始,大多数技术都特定于我当前的项目框架。 我将解释这些内容,以便您理解我如何开发相关服务和DAO方法。 由于jQuery网格支持分页,因此需要一种适当的方式来从前端到后端再从后端到前端交换网格信息。 为此,我实现了通用的“ Page”类。

/*** */
package com.shims.dto;import java.util.ArrayList;
import java.util.List;/*** @author semikas**/public class Page<T> {/*** Query result list.*/private List<T> resultList = new ArrayList<T>(); /*** Requested page number.*/private Integer page = 1;/*** Number of rows displayed in a single page.*/private Integer rows = 10;/*** Total number of records return from the query.*/private Integer records;/*** Total number of pages.*/private Integer totals;/*** @return the resultDtoList*/public List<T> getResultList() {return resultList;}/*** @param resultDtoList the resultDtoList to set*/public void setResultList(List<T> resultList) {this.resultList = resultList;}/*** @return the page*/public Integer getPage() {return page;}/*** @param page the page to set*/public void setPage(Integer page) {this.page = page;}/*** @return the rows*/public Integer getRows() {return rows;}/*** @param rows the rows to set*/public void setRows(Integer rows) {this.rows = rows;}/*** @return the records*/public Integer getRecords() {return records;}/*** @param records the records to set*/public void setRecords(Integer records) {this.records = records;}/*** @return the totals*/public Integer getTotals() {return totals;}/*** @param totals the totals to set*/public void setTotals(Integer totals) {this.totals = totals;}}

同样,通过一些搜索条件,我们可以获取数据并相应地更新网格。
我的服务接口和实现类如下。

ProvinceService.java

/*** */
package com.shims.service.maintenance.api;import java.util.List;import com.shims.dto.Page;
import com.shims.exceptions.ServiceException;
import com.shims.model.maintenance.Province;/*** @author Semika Siriwardana**/
public interface ProvinceService {/*** Returns list of provinces for a given search criteria.* @return* @throws ServiceException*/public Page<Province> findByCriteria(Province searchCriteria, Page<Province> page) throws ServiceException;}

ProvinceServiceImpl.java

/*** */
package com.shims.service.maintenance.impl;import java.util.ArrayList;
import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.shims.dto.Page;
import com.shims.exceptions.ServiceException;
import com.shims.model.maintenance.Province;
import com.shims.persist.maintenance.api.ProvinceDao;
import com.shims.service.maintenance.api.ProvinceService;/*** @author Semika Siriwardana**/@Servicepublic class ProvinceServiceImpl implements ProvinceService {@Autowiredprivate ProvinceDao provinceDao; /*** {@inheritDoc} */@Overridepublic Page<Province> findByCriteria(Province searchCriteria, Page<Province> page) throws ServiceException {Page<Province> resultPage = provinceDao.findByCriteria(searchCriteria, page); return resultPage;}}

我正在使用' page '实例在前端和后端之间交换网格信息。

接下来,我将解释本教程的其他重要部分。

步骤06: 实现数据访问方法。

在DAO方法中,我们应该仅过滤用户所请求页面的记录,还应该更新“ page ”实例属性,以便应将这些记录反映到网格中。 由于我正在使用Hibernate模式,因此我使用了“条件”从数据库中检索所需的数据。 您可以通过自己的方式来实现,但是它应该正确地更新网格信息。

省Dao.java

/*** */
package com.shims.persist.maintenance.api;import com.shims.dto.Page;
import com.shims.exceptions.DataAccessException;
import com.shims.model.maintenance.Province;
import com.shims.persist.common.GenericDAO;/*** @author Semika Siriwardana**/
public interface ProvinceDao extends GenericDAO<Province, Long> { /*** Returns search results for a given search criteria.* @param searchCriteria* @param page* @return* @throws DataAccessException*/public Page<Province> findByCriteria(Province searchCriteria, Page<Province> page) throws DataAccessException;}

ProvinceDaoImpl.java

/*** */
package com.shims.persist.maintenance.impl;import java.util.List;import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;import com.shims.dto.Page;
import com.shims.exceptions.DataAccessException;
import com.shims.model.maintenance.Province;
import com.shims.persist.maintenance.api.ProvinceDao;/*** @author Semika Siriwardana**/@Repositorypublic class ProvinceDaoImpl extends AbstractMaintenanceDaoSupport<Province, Long> implements ProvinceDao {@Autowiredpublic ProvinceDaoImpl(SessionFactory sessionFactory) {setSessionFactory(sessionFactory);}/*** {@inheritDoc} */@SuppressWarnings('unchecked')@Overridepublic Page<Province> findByCriteria(ProvinceDto searchCriteria, Page<Province> page) throws SHIMSDataAccessException {Criteria criteria = getSession().createCriteria(Province.class);if (searchCriteria.getName() != null && searchCriteria.getName().trim().length() != 0) {criteria.add(Restrictions.ilike('name', searchCriteria.getName(), MatchMode.ANYWHERE)); }//get total number of records firstcriteria.setProjection(Projections.rowCount());Integer rowCount = ((Integer)criteria.list().get(0)).intValue();//reset projection to nullcriteria.setProjection(null);Integer to = page.getPage() * page.getRows();Integer from = to - page.getRows();criteria.setFirstResult(from);criteria.setMaxResults(to); //calculate the total pages for the queryInteger totNumOfPages =(int) Math.ceil((double)rowCount / (double)page.getRows());List<Province> privinces = (List<Province>)criteria.list(); //Update 'page' instance.page.setRecords(rowCount); //Total number of recordspage.setTotals(totNumOfPages); //Total number of pagespage.setResultList(privinces);return page; }
}

我认为,这对于希望将纯jQuery与struts2结合使用的开发人员将是一个很好的帮助。 如果您发现与该主题更多相关的信息,请在下面发布。

参考: 如何在没有插件的Struts 2中使用jQuery网格? 从我们的JCG合作伙伴 Semika loku kaluge在Code Box博客上获得。


翻译自: https://www.javacodegeeks.com/2012/06/query-grid-with-struts-2-without-plugin.html

idea struts插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 值法确定各指标权重,Matlab学习系列19. 熵值法确定权重

19. 熵值法确定权重一、基本原理在信息论中&#xff0c;熵是对不确定性的一种度量。信息量越大&#xff0c;不确定性就越小&#xff0c;熵也就越小&#xff1b;信息量越小&#xff0c;不确定性越大&#xff0c;熵也越大。 根据熵的特性&#xff0c;可以通过计算熵值来判断一个事…

在Sqoop中管理密码的关键提示

Sqoop是用于Hadoop的流行数据传输工具。 Sqoop允许从结构化数据存储&#xff08;如关系数据库&#xff0c;企业数据仓库和NoSQL数据存储&#xff09;轻松导入和导出数据。 Sqoop还与Hive&#xff0c;HBase和Oozie等基于Hadoop的系统集成。 在此博客文章中&#xff0c;我将介绍…

php 商城套餐搭配功能,速卖通商品搭配套餐功能已上线!设置速卖通搭配套餐仅需三步...

据雨果网获悉&#xff0c;速卖通商品搭配套餐功能已于 10 月 19 日上线。商品搭配套餐的主要功能及作用&#xff0c;主要是帮助速卖通的卖家&#xff0c;通过自行选择商品&#xff0c;设置不同商品间搭配优惠促销价格&#xff0c;提高商品推广内容的丰富性及专业性&#xff0c;…

二维码支付原理分析及安全性的探究

“二维码支付”安全么&#xff1f; 1 引言 随时支付宝和微信的线下不断推广&#xff0c;目前使用手机进行二维码支付已经逐渐成为一种时尚了。 但是大家有没有思考过&#xff1a;这种便捷的支付方式到底安不安全呢&#xff1f;今天我们就针对这个话题来进行一些探讨吧。 2 …

python创建一个包,如何从python包创建一个osx应用程序/ dmg?

我不知道正确的方法&#xff0c;但是这种手动方法是我用于简单脚本的方法&#xff0c;似乎已经适当地执行了。我会假设我所在的任何目录&#xff0c;我的程序的Python文件都在相对的src /目录中&#xff0c;我要执行的文件(具有正确的shebang和执行权限)被命名为main.py。$ mkd…

自定义类加载器

转载自&#xff1a;http://www.cnblogs.com/xrq730/p/4847337.html 为什么要自定义类加载器转载于:https://www.cnblogs.com/IvySue/p/7490656.html

guice spring_Spring vs Guice:重要的一个关键区别

guice spring根据弹簧对象的名称识别它们 不管使用XML还是Java配置都没有关系&#xff0c;Spring范围大致类似于Map <String&#xff0c;Object>结构。 这意味着您不能有两个名称相同的对象 。 为什么这是一件坏事&#xff1f; 如果您的大型应用程序具有许多Configuratio…

query row php,php – 如何在Codeigniter上使用$query- row获取类对象

我目前正在使用Codeigniter框架.在下面的代码中,我想获得一个Animal_model对象,而不是stdClass对象.class Animal_model extends CI_Model{var $idanimal;var $name;public static $table animals;function __construct() {parent::__construct();}function getone(self $anim…

vue2.0版本指令v-if与v-show的区别

v-if&#xff1a; 判断是否加载&#xff0c;可以减轻服务器的压力&#xff0c;在需要时加载。 v-show&#xff1a;调整css dispaly属性&#xff0c;可以使客户端操作更加流畅。 v-if示例&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF…

oracle 中增加行,Oracle中实现FORM表单插入、锁定、更新行、删除行的包

此包写在oracle数据库中&#xff0c;供Form表单调用&#xff1a;CREATE OR REPLACE PACKAGE BODY cux_main_pkg AS/*** PROCEDURE: insert_row()***/PROCEDURE insert_row(x_row_id IN OUT VARCHAR2,x_insp_header_id IN OUT NUMBER,p_org_id IN…

IE8兼容问题

setInterval 的用法如下&#xff1a; function func() { setInterval("alert()", 1000, this); // chrome 适用, 但不能传参数 setInterval("alert", 1000, this); // chrome、ie8 都不适用 setInterval(alert, 1000, this); // chrome 适用&…

CUBA平台正在开源

期待已久的时刻已经到来&#xff0c;现在我们很高兴地宣布&#xff0c; CUBA平台终于加入了自由软件社区&#xff01; 从现在开始&#xff0c;平台的所有运行时部分都是开源的&#xff0c;并根据Apache 2.0许可进行分发。 这意味着您将完全可以免费创建和分发应用程序&#xff…

oracle 9i 手工建库,简单记录Oracle 9i数据库手工建库过程

简单记录Oracle 9i数据库手工建库过程Oracle 9i手工建库By Oracle老菜今天客户要用oracle 9.2.0.5&#xff0c;aix 6.1已经不支持了&#xff0c;只好从别的数据库把软件拷贝过来重编译。但是建库只能用手工建库了。很久没有使用手工建库了&#xff0c;简单记录下建库过程1.设置…

LazyInitializationException的四个解决方案–第2部分

本文从本教程的第1部分继续。 有状态EJB使用PersistenceContextType.EXTENDED进行负载收集 该方法只能应用于与Full JEE环境兼容的应用程序&#xff1a;将EJB与PersistenceContextType.EXTENDED一起使用。 检查下面的代码&#xff0c;DAO的样子&#xff1a; package com.ejb…

SecureCRT在卸载时似乎会同时删除系统自带的Consolas字体

今天卸载了SecureCRT的安装板&#xff0c;改用绿色版&#xff0c;没想到删完之后再运行ItelliJ IDEA&#xff0c;所有的字包括行号都变成乱码了&#xff0c;而且这些乱码并不是很乱&#xff0c;英文大部分都是注音符号&#xff0c;中文字还能正常显示&#xff01;仔细查看各种编…

SpringBoot:使用JdbcTemplate

Spring使用JdbcTemplate在JDBC API的基础上提供了一个很好的抽象&#xff0c;并且还使用基于注释的方法提供了强大的事务管理功能。 首先&#xff0c;通过注册DataSource &#xff0c; TransactionManager和JdbcTemplate Bean&#xff0c;快速浏览一下我们通常如何使用Spring的…

混合高斯模型(Mixtures of Gaussians)和EM算法

混合高斯模型&#xff08;Mixtures of Gaussians&#xff09;和EM算法 这篇讨论使用期望最大化算法&#xff08;Expectation-Maximization&#xff09;来进行密度估计&#xff08;density estimation&#xff09;。 与k-means一样&#xff0c;给定的训练样本是&#xff0c;我们…

wordpress archive.php,wordpress分类目录模板(archive.php)制作

本课程视频是VIP会员课程&#xff0c;学习请进入VIP学习区。分类目录模板通常包括二种&#xff0c;一种是普通文章列表目录&#xff0c;一种是产品图片展示列表目录。文章列表目录是通过将分类下的文章标题通过无序列表的形式展示出来。如下图。产品图片列表目录是将产品的第一…

oracle exp 00006,Oracle 12.1新特性----使用RMAN从备份中实现recover table

Oracle 12.1新特性----使用RMAN从备份中实现recover table发布时间&#xff1a;2020-06-26 19:41:44来源&#xff1a;51CTO阅读&#xff1a;4750作者&#xff1a;hbxztc在Oracle12c版本之前&#xff0c;使用RMAN能恢复的级别为数据库级别和表空间级别&#xff0c;如果只有一张表…

spring social_Spring Social入门–第2部分

spring social几周前&#xff0c;我写了一篇文章&#xff0c;展示了我认为可以使用Spring Social编写的最简单的应用程序。 该应用程序读取并显示了Twitter用户的公共数据&#xff0c;并被编写为Spring Social和社交编码领域的介绍。 但是&#xff0c;让您的应用程序显示用户的…