{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
무료배송

배송 지역 전환

지역에 따라 재고 및 배송 속도가 다를 수 있습니다.

위치 기록

{{email ? __('Got it!') : __('Restock Alert')}}

상품입고 후 바로 알려드리겠습니다.

취소
Yami

Jingdong book

轻松掌握Struts2

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

轻松掌握Struts2

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
후 종료
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
후에 세일 종료
후 초특가세일 시작 후 초특가세일 종료
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 상세정보
상품 유효 기간

판매 중단

이 상품이 언제 재입고될지는 알 수 없습니다.

현재 주소로 배송 불가
품절

제품 설명

제품 세부 정보 전체보기
Content Description

《轻松掌握Struts 2》对企业级JavaEE开发框架Struts2进行了系统讲解。Struts2是一个设计精巧的框架,在企业开发领域已经得到广泛应用。为使读者更方便理解框架,《轻松掌握Struts 2》先通过一个简单的示例对框架进行介绍,使渎者有一个整体的感性认识,然后按照自下而上的方式分别对Action组件、拦截器、标记库、结果视图类型、类型转换、输入校验、异常处理、国际化、Ajax支持和与Spring、Hibernate集成等10个专题对框架进行深入介绍,使读者对框架的各个功能特性都有深入的理解。在各个专题的讲解中,对框架底层的实现机制进行了深入剖析,加深读者对框架的理解,同时对实际应用中的开发技巧和方法通过具体示例进行详尽演练,务必达到使读者不仅能够在实际开发中灵活运用Struts2框架,而且对Struts2框架的设计思想和设计模式有透彻领会,从而切实提高自身能力水平。
《轻松掌握Struts 2》适用于对JavaEE编程有一定了解,希望尽快掌握Struts2编程技术的开发人员,也适合希望提高JavaEE应用系统架构设计水平的中高级开发人员参考。《轻松掌握Struts 2》也可作为Struts2编程技术的培训教材。
Catalogue

第1章 认识一下Struts2
1.1 什么是Web应用
1.2 开发Web应用为什么需要框架
1.2.1 企业应用开发的特点
1.2.2 Web应用模型的先天不足
1.2.3 JavaEE身后的空白
1.3 什么是框架
1.4 认识一下Strots2框架
1.4.1 Struts2的前世今生
1.4.2 Struts2框架的基本思想
1.4.3 Struts2框架的MVC实现
1.5 Struts2学习路线

第2章 第一个SStruts2应用
2.1 创建Web应用HelloStruts2
2.2 为Web应用添加Struts2支持
2.2.1 将Struts2框架类库添加到项目路径
2.2.2 修改Web应用配置文件Web.xmi
2.3 开发Struts2组件
2.3.1 定义视图组件
2.3.2 定义模型组件
2.4 配置Struts2框架
2.5 测试运行
2.6 透视Struts2框架下的Web应用
2.7 配置”的StrutsWeb应用
2.7.1 添加Convention插件
2.7.2 定义模型组件
2.7.3 定义视图组件
2.7.4 深入探索
2.8 利用Annotation配置Struts2框架
总结

第3章 Action组件
3.1 如何开发Action
3.2 Action做了些什么
3.3 在Action中访问资源
3.3.1 自动获取Web请求参数
3.3.2 通过ActionContext获取
3.3.3 通过ServletActionContext
3.3.4 Struts2框架注入
3.3.5 传递静态参数
3.4 让Action处理多个请求
3.4.1 动态方法调用
3.4.2 定义逻辑Action
3.4.3 在配置文件中使用通配符
3.5 Action的处理结果
3.6 Action的组织
总结

第4章 拦截器
4.1 为什么要使用拦截器
4.2 什么是拦截器
4.3 如何使用拦截器
4.4 拦截器的工作原理
4.5 Struts2框架中的拦截器
4.6 开发自己的拦截器
4.6.1 创建Struts2组件
4.6.2 创建拦截器
4.6.3 配置拦截器
4.6.4 演示分析
4.7 拦截器与结果视图
4.8 监听拦截器结果
4.9 拦截器执行顺序和参数传递
总结

第5章 标记库
5.1 标记库概述
5.2 站在ValueStack上
5.3 标记的语言——OGNL
5.3.1 访问ObiectStack中的元素
5.3.2 访问StackContext中的信息
5.3.3 访问静态属性和方法
5.3.4 访问集合元素
5.4 使用标记库
5.5 控制标记
5.5.1 分支控制
5.5.2 迭代控制
5.5.3 集合操作
5.6 数据标记
5.6.1 action标记
5.6.2 property标记
5.6.3 debug标记
5.6.4 bean标记
5.6.5 set标记
5.6.6 push标记
5.6.7 include标记
5.6.8 param标记
5.6.9 url标记
5.6.1 0date标记
5.7 ui标记
5.8 关于标记属性的说明
总结

第6章 结果视图类型
6.1 结果类型
6.2 利用结果类型实现Action协作
6.3 利用stream结果类型实现文件
总结

第7章 类型转换
7.1 框架内置的类型转换支持
7.2 框架内置类型转换示例
7.3 类型转换实现机制
7.4.JavaBean对象的类型转换
7.5 自定义对象的类型转换
7.6 集合对象的类型转换
7.7 类型转换流程
总结

第8章 输入校验
8.1 Struts2校验机制
8.2 利用Struts2框架实现校验
8.3 内置校验器
8.4 校验器配置
8.5.校验器的执行与短路
8.6 复杂对象属性校验
8.7 校验错误信息的处理
8.8 自定义校验器
8.9 客户端验证
8.10 手动校验
总结

第9章 异常处理
9.1 异常处理机制
9.2 异常处理的声明
9.3 异常处理示例
总结

第10章 国际化
10.1 在Java应用中实现国际化
10.1.1 三个类
10.1.2 资源文件
10.1.3 一个示例
10.2 Struts2对国际化的支持
10.3 Struts2下的国际化应用
10.4 区域属性的手动选择
10.5 显示本地化信息的方法
10.6 国际化资源的定义
10.7 资源属性文件的定位查找
10.8 显示本地化异常信息
10.9 资源文件参数化
总结

第11章 Ajax
11.1 什么是AjaX
11.2 一个简单的Aja应用示例
11.2.1 AiaX框架JavaScript脚本
11.2.2 特定应用脚本
11.2.3 处理Aiax请求的服务器组件
11.2.4 辅助JavaBean
11.2.5 交互页面
11.2.6 运行测试
11.2.7 思考
11.3 Struts2支持Ajax应用的实现原理
11.4 使用AjaX标记
11.5 实现自动完成功能
11.6 实现Aiax校验
11.7 Struts2框架下的Aia)应用
总结

第12章 与SPing和Hbernate集成
12.1 为什么要集成Spring和Hibemate
12.1.1 集成Spting
12.1.2 集成Hibernate
12.2 集成方案
12.3 实施步骤
12.3.1 添加相应的Jar
12.3.2 配置Web应用
12.3.3 在Spring框架中集成Hibernate
12.3.4 利用Spring AOP实现事务支持
12.3.5 Spring与Struts2的集成
12.3.6 实体对象与数据库的映射
12.3.7 用hibernate操作数据库
12.4 程序运行
12.5 总结
参考文献
Book Abstract

企业级Web应用在软件开发管理上具有以下特点。
(1)时间紧,任务重。有过软件开发企业工作经历的读者都会亲身感受过,一旦接手一个企业应用开发项目,所面临的最大困难就是复杂的功能要求和紧迫的开发周期。这就要求企业充分利用已有的开发工作积累(包括可重用的开发框架,开发组件)来尽可能的提高开发工作效率。
(2)规模化开发。企业应用开发一般采用多人参与、分工协作的开发模式。这就要求应用开发在架构上适应目前的规模化开发模式,以确保较高的工作效率和工程化的管理模式。
1.2.2 Web应用模型的先天不足
1.2.1节讲了企业级Web应用开发的高标准严要求,但回过头来看一下Web应用模型,却存在着技术体制上的“先天不足”。在1.1节讲过,不管是静态Web应用还是动态Web应用,它们采用一致的工作模式:应用由服务器端和客户端两部分组成,服务器端和客户端通过HTTP协议采用“请求一应答”模式进行通信。
从上面的描述可以看出HTTP协议在Web应用模型中的重要地位。作为一种简单的通信协议,HTTP协议在促进Web应用得到快速普及上功不可没。但“成也萧何,败也萧何”,由于HTTP协议最初是针对静态Web应用而设计的,随着开发复杂的动态Web应用的不断深入,HTTP协议渐渐表现得力不从心。主要原因有以下两点。
1.HTTP协议是一种无状态的协议
HTTP协议是一种非连接的通信协议,它采用“请求一应答”模式的通信方式。浏览器作为客户端向服务器发起请求,服务器根据客户端的请求,返回一个静态页面或者动态生成的页面作为应答,此时浏览器与客户机之间的一次通信过程结束,二者之间的连接将中断,服务器对客户端的状态信息将不做任何保留。如果客户端浏览器需要发起新的资源请求,则对不起,一切重头再来,需要客户端按照前面的步骤重新启动新一轮的“请求一应答”通信过程。
Introduction

随着网络的日益普及以及社会信息化程度的提高,越来越多的软件开发人员需要开发Web应用程序。Struts2作为目前最受欢迎的企业级Java EE Web应用程序开发框架越来越受到欢迎,并且取得了许多成功的案例,已经成为Java EE开发人员必须掌握的技能之一。本书起源
在写作本书之前笔者也曾犹豫再三,原因有三。一是Java EE编程技术日新月异,Struts2框架的发展更是如此,就在写作本书的过程中,Struts2框架的版本就经历了不小的变化。针对一门迅速发展的技术写作就好比对疾驰的火车拍照,难以反映出Strut2框架的现状和全貌。二是Struts2是一个设计精巧的开发框架,它的各个部分之间是紧密联系的,因此如何对Struts2框架展开描述,以便读者能够循序渐进地学习Strus2框架一直是困扰笔者的一个问题,提笔时总有一种“老虎吃天,无从下口”的感觉。三是感觉自身水平有限,难免存在疏漏,贻误读者,心中总是惶惶然。
但回顾自己学习Struts2框架过程中走过的历程,经历了被种种错误资料误导的痛苦,被Google搜索出的浩如烟海的数据淹没的窒息,对某个具体问题经过尝试实验解开后的喜悦,所以也想把这些感受拿出与你分享。
本书写作的目的在于,通过对Struts2框架较为系统地介绍,使读者能够全面认识Struts2框架,不但掌握运用Struts2框架的技巧,更能领会Struts2框架设计思想的精妙,从而提高Java EE应用的架构设计水平。
本书不是一本手册书或操作指南,它不会面面俱到讲述Struts2框架的各个知识点,而是始终以较高的视点带领读者俯览整个框架,从繁复纷杂中描出框架的主线,理解框架的设计,品味框架的精妙。

명세서

상표 Jingdong book
브랜드 영역 China

면책성명

제품 가격, 포장, 사양 등의 정보는 예고 없이 변경될 수 있습니다. 적시에 제품 정보를 업데이트 할 수 있도록 최선을 다하지만, 받은 실제 제품을 참고하시기 바랍니다. 제품을 사용하기 전에 반드시 제품에 동봉된 라벨, 경고 및 설명을 읽어 주십시오.

상세정보 보기
찜한 목록에 추가
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
수량
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
JD@CHINA 판매
배송지
{{ __("Ship to United States only") }}
69이상 주문 시 무료 배송
정품 보증

장바구니에 추가됨

쇼핑 계속하기

당신을 위한 추천

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

쿠폰

{{ coupon.coupon_name_new | formatCurrency }}
받기 받았음 마감
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
곧 만료됩니다: {{ formatTime(coupon.use_end_time) }}

친구들과 공유하세요

취소

Yami 기프트카드 전용특가

기프트카드로 결제하면 전용특가를 받을 수 있습니다

규칙 설명

기프트카드 전용특가는 일부 상품에 대한 특혜가격입니다.

기프트카드 전용특가 상품 구매 시 E-기프트 카드 잔액으로 결제하고 기프트카드 잔액이 주문 내 상품의 총액을 지불하기에 충분하하 기프트카드 전용특가가 자동으로 활성화됩니다.

기프트 카드 잔액으로 결제하지 않거나 기프트카드 잔액이 전항의 요건을 충족하지 못할 경우 기프트카드 전용특가를 활성화할 수 없으며 상품은 정상 가격으로 구매할 수 있습니다.

기프트카드 전용특가 상품 구매 시 잔액이 부족할 경우 장바구니 또는 결제 페이지에서 "충전" 버튼을 클릭하여 기프트카드를 구매 및 충전할 수 있습니다.

기프트카드 전용특가가 있는 상품은 "전용특가"라는 특별한 가격표시가 표시됩니다.

질문이 있으시면 언제든지 고객 서비스에 문의하십시오.

Yami는 기프트카드 전용특가 관련 최종 해석권을 보유합니다.

Yami 판매

서비스 보장

Yami $49 이상 무료 배송
Yami 걱정 없는 반품/교환
Yami 미국에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

Yami는 고객님께 최상의 A/S를 제공하고, 모든 분들이 Yami에서 안심하고 쇼핑할 수 있도록 노력하고 있습니다. Yami의 자영 상품은 반품 및 교환 조건을 충족하는 경우, 상품 수령 후 30일 이내에 반품 및 교환할 수 있습니다(식품은 품질 문제로 인해 7일 이내에 반품 및 교환이 가능합니다. 모든 고객이 안전하고 고품질의 제품을 받을 수 있도록 뷰티 제품은 개봉 또는 사용 후에는 품질 문제를 제외하고 환불 또는 반품을 제공하지 않습니다. 기타 특별 카테고리의 제품은 고객 서비스에 문의하시기 바랍니다).
이해와 지원에 감사드립니다.

상세정보 보기

Yami 판매

Yami E-기프트카드 사용 약관

구매 시 자동 충전을 선택한 경우, 주문 완료 후 기프트카드가 자동으로 계정에 충전됩니다.

구매 시 이메일 발송을 선택한 경우, 주문 완료 후 시스템이 자동으로 카드 번호와 비밀번호를 입력한 이메일로 발송합니다.

이메일을 보낼 때, 모든 사용자는 이메일에 있는 카드 번호와 비밀번호를 사용하여 기프트카드를 충전할 수 있으니, 이메일 정보를 잘 보관하세요.

이메일을 받는 데 문제가 있으면, 고객 서비스에 연락하여 처리해 주세요.

이메일을 보낼 때, 기프트카드가 교환되지 않았다면 이메일을 재발송할 수 있습니다. 이미 다른 사용자에 의해 교환된 경우에는 보상할 수 없습니다.

Yamibuy의 E-기프트카드는 자영 또는 제3자 상품 구매에 사용할 수 있습니다.

Yamibuy의 E-기프트카드는 유효 기간 제한이 없으며, 장기간 유효합니다.

Yami 전자 상품권의 금액은 여러 번에 나눠서 사용할 수 있습니다;

Yami 전자 상품권 업무 규칙의 최종 해석 권한은 Yami 웹사이트에 있습니다.

반품 및 교환 정책

이미 사용된 E-기프트카드는 환불이 불가능합니다.

판매자: JD@CHINA

서비스 보장

Yami $49 이상 무료 배송
Yami 최고의 A/S
Yami 미국 본토에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

JD@CHINA 판매

서비스 보장

Yami 점포간 $:amount 이상 구매 시 무료 배송
Yami 30일 반품/교환 보장

Yami-중국 집하창고

Yami는 중국 내 주요 우수매장에서 제품을 선별하여 모아 Yami 중국통합센터로 배송하며 택배를 합친 후 전국 각지의 주소로 배송해 드립니다. 점포간 무료 배송 조건은 최저 $69입니다. 여러 판매자가 제공하는 다양한 상품 중에서 원하는 상품을 선택하고 점포간 무료배송으로 저렴한 배송비를 쉽게 누릴 수 있습니다.

반품 정책

30일 이내 반품 및 교환 보증을 제공합니다. 제품은 새로 사용하지 않은 원래 포장에 구매 증명서가 첨부되어 있어야 합니다. 상품 품질 문제, 잘못된 배송, 배송 누락 등 판매자의 실수로 인한 경우 환불 처리됩니다. 기타 사유로 인한 반품 및 교환은 배송비는 고객이 자체로 부담하셔야 합니다. 모든 제품은 장거리 배송을 하기 때문에 간혹 간단한 외부 포장이 눌려 마모되는 등이 있지만 내부 품질 문제가 없는 경우 반품 및 교환할 수 없습니다.

배송 정보

Yami 중국집하배송 Consolidated Shipping 배송비 $9.99 ($69 이상 주문시 무료배송)

중국 판매자는 주문 후 영업일 기준 2일 후에 상품을 발송합니다. 모든 택배는 Yami 중국통합센터(특별한 상황 및 중국 내 개별 법정 공휴일 제외)에 도착하여 택배를 합친 후 UPS를 통해 미국으로 배송됩니다. UPS는 중국에서 발송 후 미국까지 평균 10영업일 정도 소요되며 직배송 주문 번호에 따라 수시로 추적 및 조회할 수 있습니다 전염병의 영향으로 현재 물류가 5일 정도 지연될 수 있습니다. 택배는 고객 서명이 필요합니다. 서명하지 않은 경우 고객은 택배가 분실될 위험을 부담하게 됩니다.

JD@CHINA 판매

서비스 보장

69이상 주문 시 무료 배송
정품 보증

배송 정보

Yami Consolidated Shipping배송비$9.99($69 이상 주문 시 무료 배송)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

포인트 규칙

모든 품목은 Yamibuy 의 프로모션이나 포인트 이벤트에서 제외됩니다.

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

Yami

Yami 앱 다운로드

맨 위로 돌아가기

당신을 위한 추천

브랜드 스토리

Jingdong book

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

리뷰{{'('+ commentList.posts_count + ')'}}

당신의 체험을 공유하고 더 많은 사용자가 선택할 수 있도록 도와줍니다.

리뷰 작성
{{ totalRating }} 리뷰 작성
  • {{i}}별

    {{i}} 별

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}접기

{{ strLimit(comment,800) }}전체 보기

Show Original

{{ comment.content }}

Yami
모두 보기

{{ formatTime(comment.in_dtm) }} 구매 완료 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}접기

{{ strLimit(comment,800) }}전체 보기

Show Original

{{ comment.content }}

Yami
모두 보기

{{ formatTime(comment.in_dtm) }} 구매 완료 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

조건에 맞는 리뷰가 없습니다

리뷰 상세

Yami Yami

{{ showTranslate(commentDetails) }}접기

{{ strLimit(commentDetails,800) }}전체 보기

Show Original

{{ commentDetails.content }}

Yami
모두 보기

{{ formatTime(commentDetails.in_dtm) }} 구매 완료 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

내용을 입력하세요

답변{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}접기

{{ strLimit(reply,800) }}전체 보기

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

내용을 입력하세요

취소

지금까지의 모든 리뷰입니다!

리뷰 작성하기
상품 평점

댓글을 입력하세요.

  • 좋은 닉네임이 당신의 리뷰를 더 인기 있게 만들 것입니다!
  • 여기에서 닉네임을 변경하면 개인정보의 닉네임도 같이 변경됩니다.
리뷰를 남겨주셔서 감사합니다
당신의 좋은 리뷰는 우리 커뮤니티가 아시아 최고의 상품을 찾는 데 도움이 됩니다.

신고하기

취소

이 리뷰를 삭제하시겠습니까?

취소

최근 본 상품

브랜드 스토리

Jingdong book