java request获取二维数组

java request获取二维数组,第1张

java中,你将前台的所有复选框元素name起一个名字,比如orders,在后台获取值数组

requestgetParameterValues("orders");循环遍历里面的值

(一款免费开源的JAVA互联网云快速开发平台)微服务分布式代码生成的敏捷开发系统架构。项目代码简洁,注释丰富,上手容易,还同时集中分布式、微服务,同时包含许多基础模块和监控、服务模块。

演示版地址:>

既然使用了Spring,那就可以通过注解形式,在controller中获取到servletContext。

Spring是一个开源框架,由Rod Johnson创建并且在他的著作《J2EE设计开发编程指南》里进行了描述。它是为了解决企业应用开发的复杂性而创建的。

2对于Struts 如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这几个组件就是:ActionServlet。Action Classes,Action Mapping(此处包括ActionForward),ActionFrom Bean。

3Spring实际上是《Expert One-on-One J2EE Design and Development》一书中所阐述的设计思想的具体实现。在One-on-One一书中,Rod Johnson 倡导J2EE 实用主义的设计思想,并随书提供了一个初步的开发框架实现(interface21 开发包)。

4而Spring 正是这一思想的更全面和具体的体现。Rod Johnson在interface21 开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的开发框架。

5使用基本的JavaBeans来完成以前只可能由EJB完成的事情变得可能了。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

在SpringMVC中,我们可以使用注解的方式配置事务,从而避免使用XML进行配置。具体步骤如下:

1 首先,在SpringMVC的配置类中加入@EnableTransactionManagement注解,开启事务支持。

2 在需要进行事务管理的方法上,使用@Transactional注解,标注该方法需要进行事务管理。同时,可以在注解中指定事务管理的属性,如事务传播属性、隔离级别、超时时间等等。

3 在SpringMVC的配置类中,需要配置一个事务管理器。可以使用Spring提供的DataSourceTransactionManager或者Hibernate的HibernateTransactionManager。在配置事务管理器时,需要指定数据源和事务管理属性。

4 如果需要在同一事务中进行多个数据库 *** 作,可以将多个 *** 作放在同一个方法中,并使用@Transactional注解进行标注。这样,在方法执行时,就会自动开启一个事务,并将多个 *** 作放在同一个事务中进行。

使用注解配置事务可以简化配置过程,减少代码量,提高开发效率。同时,也可以使代码更加清晰易懂,便于维护。不过,在使用注解配置事务时,需要注意事务的传播属性和隔离级别,避免出现事务管理的问题。

@Controller

@RequestMapping(/user)

public class UserAction

{

@RequestMapping("/addaction")

public String add(>

在开发 Spring MVC 应用时,可以通过以下步骤来部署 DispatcherServlet 并创建 Spring MVC 配置:

在 webxml 中配置 DispatcherServlet:

xmlCopy code<servlet>

 <servlet-name>dispatcher</servlet-name>

 <servlet-class>orgspringframeworkwebservletDispatcherServlet</servlet-class>

 <init-param>

   <param-name>contextConfigLocation</param-name>

   <param-value>/WEB-INF/spring-dispatcher-servletxml</param-value>

 </init-param>

 <load-on-startup>1</load-on-startup></servlet><servlet-mapping>

 <servlet-name>dispatcher</servlet-name>

 <url-pattern>/</url-pattern></servlet-mapping>

这个配置将 DispatcherServlet 映射到应用的根路径,即所有请求都会被转发到 DispatcherServlet 进行处理。

创建 Spring MVC 配置文件 spring-dispatcher-servletxml:

xmlCopy code<xml version="10" encoding="UTF-8"><beans xmlns=""

   xmlns:context=""

   xmlns:mvc=""

   xmlns:xsi=""

   xsi:schemaLocation="

       

       

       

       

       

       ;

   <!-- 配置控制器 -->

   <mvc:annotation-driven />

   <!-- 扫描包 -->

   <context:component-scan base-package="comexamplecontroller" />

   <!-- 视图解析器 -->

   <bean id="viewResolver" class="orgspringframeworkwebservletviewInternalResourceViewResolver">

       <property name="prefix" value="/WEB-INF/views/" />

       <property name="suffix" value="jsp" />

   </bean></beans>

这个配置文件包含了 Spring MVC 应用的相关配置,包括控制器的扫描、视图解析器的配置等。

以上是部署 DispatcherServlet 和创建 Spring MVC 配置的基本步骤,具体还需根据实际情况进行调整和扩展。

案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入。其实类似的场景还有批量删除多个,也是类似的。

1 前台页面

<thead><tr><th>权限选择</th><th>name</th><th>permission</th></tr></thead>

<c:forEach var="priv" items="${list }">

<tr class="odd gradeX">

<td><input type="checkbox" name="priv_id" value="${privid}" /></td>

<td><c:out value="${privname}"/></td>

<td><c:out value="${privpermission}"/></td>

</tr>

</c:forEach>

2 jquery获得选中的项的id值:

//jquery获取复选框值

var priv_ids =[];//定义一个数组

$('input[name="priv_id"]:checked')each(function(){ // 遍历每一个name为priv_id的复选框,其中选中的执行函数

priv_idspush($trim($(this)val())); // 将选中的值添加到数组priv_ids中

});

consolelog(priv_ids);

var indata = {userId:user_id, privIds:priv_ids};

$post("/ems/priv/setPrivilege", indata, function(data){

if(data != null && dataresult == 'ok'){

consolelog(datamsg);

alert(datamsg);

}else{

alert(datamsg);

}

}, 'json');

提交的json格式的数据:var indata = {userId:user_id, privIds:priv_ids};

其中的 priv_ids 是一个有 id 组成的数组。

3 springMVC接收数组参数:

@RequestMapping(value="/setPrivilege")

@ResponseBody

public void setPrivilege(@RequestParam(value = "privIds[]") Integer[] privIds, Integer userId, PrintWriter writer){

Systemoutprintln(JSONtoJSONString(privIds));

Systemoutprintln(JSONtoJSONString(userId));

int result = thisprivilegeServicesetPrivilegeForUser(privIds, userId);

Systemoutprintln("result=" + JSONtoJSONString(result));

Map<String, String> map = new HashMap<>();

if(result > 0){

mapput("result", "ok");

mapput("msg", "设置成功");

writerwrite(JSONtoJSONString(map));

}

}

看到使用了:@RequestParam(value = "privIds[]") Integer[] privIds 来获取前台传来的数组参数。

springMVC接收参数时,最好不要使用 int, long等原始类型,而应该使用它们对应的包装类型,不然当传入的参数为空时,会报错,而包装类型可以使用null表示传入的空值。

4 service层的处理,很简单,直接使用map向mybatis传递参数:

@Service("privilegeService")

@Transactional

public class PrivilegeServiceImpl implements PrivilegeService {

@Autowired

private PrivilegeMapper privilegeMapper;

@Override

@Transactional(readOnly=true)

public List<Privilege> getAllPrivilege() {

return privilegeMappergetAllPrivilege();

}

@Override

public int setPrivilegeForUser(Integer[] privIds, Integer userId) {

Map<String, Object> map = new HashMap<>();

mapput("privIds", privIds);

mapput("userId", userId);

return thisprivilegeMappersetPrivilegeForUser(map);

}

}

5 最后看 mybatis 的 xml 中的sql如何写:

<insert id="setPrivilegeForUser" parameterType="map">

insert into user_privilege(user_id, privilege_id) values

<foreach collection="privIds" index="index" item="item" separator=",">

( #{userId}, #{item} )

</foreach>

</insert>

看到使用了 foreach 来循环传递进来的数组 privIds,最后组成的sql语句如下所示:

insert into user_privilege(user_id, privilege_id) values (3, 1),(3,2),(3,3),(3,4)

user_id 不变,而privilege_id 是数组 privIds 中的循环出来的 id 值。其实就是数据库的批量插入。

6 批量删除多个的处理

删除时,和前面批量插入处理也是极其类似的,只在最后mybatis中xml中sql的写法有点区别:

<delete id="deleteByIds" parameterType="javautilList">

delete from user_privilege where id in

<foreach collection="list" index="index" item="item" open="(" separator="," close=")">

#{item}

</foreach>

</delete>

比较批量删除和批量插入,可以看出 foreach 中的 open="(" 和 close=")" 只在循环的开始和结束会加上,而 separator="," 是每循环一次,就加一次逗号。

7 批量插入传入对象List的例子:

<insert id="batchInsertStudent" parameterType="javautilList">

insert into student (id,name,sex,tel,address) values

<foreach collection="list" item="item" index="index" separator="," >

(#{itemid},#{itemname},#{itemsex},#{itemtel},#{itemaddress})

</foreach>

</insert>

其实掌握了 批量插入和批量删除,批量更新也是一样的。

以上就是关于java request获取二维数组全部的内容,包括:java request获取二维数组、JeeSpringCloud-互联网云快速开发框架、spring mvc在controller中如何获取servletcontext等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10156047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存