SSH请求匹配(笔记)

采用SSH进行项目实战开发,其中将涉及到jsp页面数据和Java后端逻辑数据的链条。那么怎么样进行链条呢?下面来分享一下心得。
SSH及Struts2、Spring、Hibernate,其中Spring主要负责bean的管理和项目的相关配置工作,Hibernate主要负责持久化及数据库的操作,而Struts就负责和前端页面数据请求的管理,其中就包括了数据链条。先看效果图:
在这里插入图片描述
单击提交:
在这里插入图片描述
editProduct
在这里插入图片描述

单击测试:
在这里插入图片描述
struts.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
  <constant name="struts.i18n.encoding" value="UTF-8"></constant>
  
  <constant name="struts.objectFactory" value="spring"/>
  
  <package name="basicstruts" extends="struts-default">
  
  <action name="*Product" class="productActionBean" method="{1}">
    <result name="listProduct">WEB-INF/jsp/product/listProduct.jsp</result>
    <result name="listProductAction" type="redirect">listProduct</result>
    <result name="editProduct">WEB-INF/jsp/product/editProduct.jsp</result>
  </action>
  
</package>
</struts>

ProductAction类:

package com.how2java.action;

import java.util.List;

import com.how2java.pojo.Product;
import com.how2java.service.ProductService;

public class ProductAction {

	ProductService productService;
	List<Product> products;
	Product product;

	public String list() {
		products = productService.list();
		return "listProduct";
	}

	public String add() {
		productService.add(product);
		return "listProductAction";
	}

	public String test() {
		System.out.println(product.getName());
		return "listProductAction";
	}

	public String edit() {
		product = productService.get(product.getId());
		return "editProduct";
	}

	public String delete() {
		productService.delete(product);
		return "listProductAction";
	}

	public String update() {
		productService.update(product);
		return "listProductAction";
	}

	public ProductService getProductService() {
		return productService;
	}

	public void setProductService(ProductService productService) {
		this.productService = productService;
	}

	public List<Product> getProducts() {
		return products;
	}

	public void setProducts(List<Product> products) {
		this.products = products;
	}

	public Product getProduct() {
		return product;
	}

	public void setProduct(Product product) {
		this.product = product;
	}

}

listProduct.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8" isELIgnored="false"%>

<%@ taglib prefix="s" uri="/struts-tags" %>


<%@page isELIgnored="false"%>


<div style="margin:0px auto; width:500px">
<table cellspacing="0" border="1" width="100%">
	<tr>
		<td>id</td>
		<td>name</td>
		<td>编辑</td>
		<td>删除</td>
		
	</tr>
	    	    
<s:iterator value="products" var="p">
	<tr>
		<td>${p.id}</td>
		<td>${p.name}</td>
		<td><a href="editProduct?product.id=${p.id}">编辑</a></td>
		<td><a href="deleteProduct?product.id=${p.id}">删除</a></td>		
	</tr>
</s:iterator>

</table>

<br>
<br>

<form action="addProduct" method="post">

name: <input name="product.name"> <br>
<button type="submit">提交</button>

</form>

<form action="testProduct" method="get">
<input name="product.name">
<button type="submit">测试</button>
</form>
</div>

从图和代码我们可以发现,我们进行提交都是需要先经过struts.xml文件,而该文件中的标签action和jsp中需提交的请求相匹配,action中的name和method非常重要,代码中action=“*Product” method={1},其中*Product代表所有以Product结尾的请求,就是jsp页面中提交数据的一个请求,如listProduct.jsp页面中form表单中的action,像testProduct一样,那么就有小伙伴们文怎样去分辨如testProduct和addProduct对应ProductAction中的哪个方法呢, 其实如testProduct前面的test对应ProductAction中方法名,而method={1}和*的个数相匹配。
在struts.xml中result标签中的listProduct则代表着连接的jsp页面中的方法,其中name和ProductAction中请求的return返回值相匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥不可及~~斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值