how2j.cn


工具版本兼容问题
关于分类管理这一块的学习,推荐如下思路:
1. 先下载可运行的项目 ,配置好了跑一边
2. 根据接着的讲解,把里面的每一块代码的逻辑,思路,设计思想搞明白,不明不白的在对应页面下提问
3. 都理清楚之后,把可运行的项目 删掉,按照:查询,增加,删除,编辑,修改的顺序自己从头到尾做一遍

只有,能够独立的做出来,才叫做把这些知识点的内容转化为自己的技能





HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2019-12-19 Action 是不是使用了注解就默认不是单列模式了,而配置方式默认是单列模式?
阿龙_




rt
加载中
package com.tmall.action;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.annotation.Resource;
import javax.imageio.ImageIO;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
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 com.tmall.pojo.Category;
import com.tmall.service.CategoryService;
import com.tmall.util.ImageUtil;
import com.tmall.util.Page;

/**
 * @author
 * @version 创建时间:2019年12月19日 上午10:52:59
 * @ClassName 类名称:
 * @Description 类描述:
 */
@Namespace("/")
@ParentPackage("basicstruts")
@Results({
		// 分类管理
		@Result(name = "listCategory", location = "/admin/listCategory.jsp"),
		@Result(name = "listCategoryPage", type = "redirect", location = "/admin_category_list"),
		@Result(name = "editCategory", location = "/admin/editCategory.jsp"), })
public class CategoryAction {

	@Resource
	CategoryService categoryService;

	List<Category> categorys;

	Page page;

	Category category;

	// img的name是从jsp页面传过来的,需要对应
	File img;

	@Action("admin_category_list")
	public String list() {
		if (page == null)
			page = new Page();
		int total = categoryService.total();
		page.setTotal(total);
		categorys = categoryService.listByPage(page);
		System.out.println(this);
		return "listCategory";
	}

	@Action("admin_category_add")
	public String add() {
		categoryService.save(category);
		File imageFolder = new File(ServletActionContext.getServletContext().getRealPath("img/category"));
		File fe = new File(imageFolder, category.getId() + ".jpg");
		try {
			FileUtils.copyFile(img, fe);
			BufferedImage img = ImageUtil.change2jpg(fe);
			ImageIO.write(img, "jpg", fe);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "listCategoryPage";
	}

	@Action("admin_category_delete")
	public String delete() {
		categoryService.delete(category);
		File imgFolder = new File(ServletActionContext.getServletContext().getRealPath("img/category"));
		File file = new File(imgFolder, category.getId() + ".jpg");
		file.delete();
		return "listCategoryPage";
	}

	@Action("admin_category_edit")
	public String edit() {
		int id = category.getId();
		category = categoryService.get(Category.class, id);
		return "editCategory";
	}

	public List<Category> getCategorys() {
		return categorys;
	}

	@Action("admin_category_update")
	public String update() {
		categoryService.update(category);
		if (img != null) {
			File imageFolder = new File(ServletActionContext.getServletContext().getRealPath("img/category"));
			File fe = new File(imageFolder, category.getId() + ".jpg");
			try {
				FileUtils.copyFile(img, fe);
				BufferedImage img = ImageUtil.change2jpg(fe);
				ImageIO.write(img, "jpg", fe);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return "listCategoryPage";
	}

	public void setCategorys(List<Category> categorys) {
		this.categorys = categorys;
	}

	public Page getPage() {
		return page;
	}

	public void setPage(Page page) {
		this.page = page;
	}

	public Category getCategory() {
		return category;
	}

	public void setCategory(Category category) {
		this.category = category;
	}

	public File getImg() {
		return img;
	}

	public void setImg(File img) {
		this.img = img;
	}

}

							


1 个答案

how2j
答案时间:2019-12-19
对,默认都是非单例。ssh 因为使用 action 来存放参数,如果是单例会有各种问题。



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-05-11 关于单例的问题
Souyl

问题一: 之前提及到一个单例的问题,后来使用以下语句解决了: “增加一个属性scope="prototype" ,用于告知Spring,这个对象的管理,使用非单例模式”, 这是非注解的方法,仔细想想,后来使用注解以后,包括天猫这个项目,就没有涉及到单例了, 那么天猫这个项目是单例的还是非单例? 问题二:(脑洞大开) 天猫后台管理是不是用于天猫商家对商品还有订单之类的管理?因为有一个用户管理,之前还以为是阿里集团对注册用户的管理【汗颜】, 如果是商家对商品管理,要是想完善,是不是需要加上商家登录之类的?会更复杂?




1 个答案

how2j
答案时间:2018-05-13
1. 在Action里打印this, 多调用几次,看看this打印出来的虚拟地址是否会变化,就知道是单例还是非单例了 2. 可以做上商家管理,这个算是练习,有兴趣自己加上吧,也是检验自己是否消化理解了本项目



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2018-05-05 上传图片问题




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 实践项目-天猫整站SSH-做一遍 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 635924385
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图