<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.Jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/action-mybatis.xml
/WEB-INF/config/action-service.xml
</param-value>
</context-param>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
web.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/views/member/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="memberController"
class="com.spring.member.controller.MemberControllerImpl">
<property name="methodNameResolver">
<ref local="memberMethodResolver" />
</property>
<property name="memberService" ref="memberService" />
</bean>
<bean id="memberMethodResolver"
class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
<property name="mappings">
<props>
<prop key="/member/listMembers.do">listMembers</prop>
<prop key="/member/addMember.do">addMember</prop>
<prop key="/member/removeMember.do">removeMember</prop>
<prop key="/member/modifyMember.do">modifyMember</prop> <!--/////////////////////추가-->
<prop key="/member/memberById.do">memberById</prop> <!--/////////////////////추가-->
<prop key="/member/modMember.do">modMember</prop> <!--/////////////////////추가-->
<prop key="/member/memberForm.do">form</prop>
</props>
</property>
</bean>
<bean id="memberUrlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/member/*.do">memberController</prop>
</props>
</property>
</bean>
</beans>
action-servlet.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>/WEB-INF/config/jdbc.properties</value>
</property>
</bean>
<bean id="dataSource"
class="org.apache.ibatis.datasource.pooled.PooledDataSource">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis/model/modelConfig.xml" />
<property name="mapperLocations" value="classpath:mybatis/mappers/*.xml" />
</bean>
<bean id="sqlSession"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
</bean>
<bean id="memberDAO"
class="com.spring.member.dao.MemberDAOImpl">
<property name="sqlSession" ref="sqlSession"></property>
</bean>
</beans>
action-mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="memberService"
class="com.spring.member.service.MemberServiceImpl">
<property name="memberDAO" ref="memberDAO" />
</bean>
</beans>
action-service.xml
jdbc.driverClassName=org.mariadb.jdbc.Driver
jdbc.url=jdbc:mariadb://localhost:3306/membertable
jdbc.username=root
jdbc.password=1234
jdbc.properties
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="com.spring.member.vo.MemberVO" alias="memberVO" />
</typeAliases>
</configuration>
modelConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.member">
<resultMap id="memResult" type="memberVO">
<result property="id" column="id" />
<result property="pwd" column="pwd" />
<result property="name" column="name" />
<result property="email" column="email" />
<result property="joinDate" column="joinDate" />
</resultMap>
<select id="selectAllMemberList" resultMap="memResult">
<![CDATA[
select * from t_member order by joinDate desc
]]>
</select>
<select id="selectName" resultType="String">
<![CDATA[
select name from t_member
where id = 'kongdol'
]]>
</select>
<select id="selectPwd" resultType="int">
<![CDATA[
select pwd from t_member
where id = 'kongdol'
]]>
</select>
<select id="selectMemberById" resultType="memberVO" parameterType="String">
<![CDATA[
select * from t_member
where id=#{id}
]]>
</select>
<select id="selectMemberByPwd" resultMap="memResult" parameterType="int">
<![CDATA[
select * from t_member
where pwd=#{pwd}
]]>
</select>
<insert id="insertMember" parameterType="memberVO">
<![CDATA[
insert into t_member(id,pwd,name,email)
values(#{id},#{pwd},#{name},#{email})
]]>
</insert>
<insert id="insertMember2" parameterType="java.util.Map">
<![CDATA[
insert into t_member(id,pwd,name,email)
values(#{id},#{pwd},#{name},#{email})
]]>
</insert>
<update id="updateMember" parameterType="memberVO">
<![CDATA[
update t_member
set pwd=#{pwd}, name=#{name}, email=#{email}
where id=#{id}
]]>
</update>
<delete id="deleteMember" parameterType="String">
<![CDATA[
delete from t_member
where id=#{id}
]]>
</delete>
<!-- 동적 SQL문 -->
<select id="searchMember" parameterType="memberVO" resultMap="memResult">
<![CDATA[
select * from t_member
]]>
<!--<where>
<if test=" name != '' and name != null">
name=#{name}
</if>
<if test=" email != '' and email != null">
and email=#{email}
</if>
</where>-->
<where>
<choose>
<when test="name != '' and name != null and email != '' and email != null">
name=#{name} and email=#{email}
</when>
<when test=" name != '' and name != null">
name=#{name}
</when>
<when test=" email != '' and email != null">
email=#{email}
</when>
</choose>
</where>
order by joinDate desc
</select>
<select id="foreachSelect" resultMap="memResult" parameterType="java.util.Map">
<![CDATA[
select * from t_member
]]>
where name in
<foreach item="item" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
order by joinDate desc
</select>
<insert id="foreachInsert" parameterType="java.util.Map">
insert INTO t_member(id, pwd, name, email)
VALUES
<foreach item="item" collection="list" index="index" separator=",">
(#{item.id}, #{item.pwd}, #{item.name}, #{item.email})
</foreach>
</insert>
<!-- like 검색 -->
<select id="selectLike" resultMap="memResult" parameterType="String">
<![CDATA[
select * from t_member
where
name like '%' || #{name} || '%'
]]>
</select>
</mapper>
member.xml
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<c:choose>
<c:when test='${msg == "insertMember"}'>
<script>
window.onload = function() {
alert("회원을 등록했습니다. ");
window.location.href = "${contextPath}/member/listMembers.do";
}
</script>
</c:when>
<c:when test='${msg == "updateMember"}'>
<script>
window.onload = function() {
alert("회원 정보를 수정했습니다. ");
window.location.href = "${contextPath}/member/listMembers.do";
}
</script>
</c:when>
<c:when test='${msg == "deleteMember"}'>
<script>
window.onload = function() {
alert("회원 정보를 삭제했습니다. ");
window.location.href = "${contextPath}/member/listMembers.do";
}
</script>
</c:when>
</c:choose>
<meta charset="utf-8">
<title>회원정보 출력창</title>
<style type="text/css">
.cls1 {
font-size: 40px;
text-align: center;
}
.cls2 {
text-align: center;
}
</style>
</head>
<body>
<table align="center" width="80%" border="1">
<tr align="center" bgcolor="lightblue">
<td>ID</td>
<td>PASSWORD</td>
<td>NAME</td>
<td>EMAIL</td>
<td>JOINDATE</td>
<td>수정</td>
<td>삭제</td>
</tr>
<c:choose>
<c:when test="${membersList == null}">
<tr align="center">
<td colspan="7"><b>등록된 회원이 없습니다.</b></td>
</tr>
</c:when>
<c:when test="${membersList != null}">
<c:forEach var="member" items="${membersList}">
<tr align="center">
<td>${member.id}</td>
<td>${member.pwd}</td>
<td>${member.name}</td>
<td>${member.email}</td>
<td>${member.joinDate}</td>
<td><a href="${contextPath}/member/memberById.do?id=${member.id}">수정</a></td>
<td><a href="${contextPath}/member/removeMember.do?id=${member.id}">삭제</a></td>
</tr>
</c:forEach>
</c:when>
</c:choose>
</table>
<table align="center" width="40%" border="0">
<tr style="text-align: center">
<td height="50px"><a href="${contextPath}/member/memberForm.do"><b>회원가입</b></a></td>
<%-- <td height="50px"><a href="${contextPath}/test03/searchMember.jsp"><b>회원검색</b></a></td> --%>
<td height="50px"><a href="${contextPath}/member/listMembers.do"><b>새로고침</b></a></td>
</tr>
</table>
</body>
</html>
listMembers.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>회원가입 창</title>
</head>
<body>
<form method="post" action="${contextPath}/member/addMember.do"> <!-- /mem4.do?action=insertMember2 -->
<h1 style="text-align: center">회원가입창</h1>
<table align="center">
<tr>
<td width="200"><p align="right">아이디</p></td>
<td width="400"><input type="text" name="id"></td>
</tr>
<tr>
<td width="200"><p align="right">비밀번호</p></td>
<td width="400"><input type="password" name="pwd"></td>
</tr>
<tr>
<td width="200"><p align="right">이름</p> </td>
<td width="400"><input type="text" name="name"></td>
</tr>
<tr>
<td width="200"><p align="right">이메일</p></td>
<td width="400"><input type="text" name="email"></td>
</tr>
<tr>
<td width="200"></td>
<td width="80">
<input type="submit" value="가입하기">
<input type="reset" value="다시입력">
</td>
</tr>
</table>
</form>
</body>
</html>
memberForm.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>회원정보 수정창</title>
</head>
<body>
<form method="post" action="${contextPath}/member/modifyMember.do?id=${memInfo.id}">
<h1 style="text-align: center">회원 정보 수정창</h1>
<table align="center">
<tr>
<td width="200"><p align="right">아이디</p></td>
<td width="400"><input type="text" name="id" value="${memInfo.id}" disabled="disabled"></td>
</tr>
<tr>
<td width="200"><p align="right">비밀번호</p></td>
<td width="400"><input type="password" name="pwd" value="${memInfo.pwd}"></td>
</tr>
<tr>
<td width="200"><p align="right">이름</p> </td>
<td width="400"><input type="text" name="name" value="${memInfo.name}"></td>
</tr>
<tr>
<td width="200"><p align="right">이메일</p></td>
<td width="400"><input type="text" name="email" value="${memInfo.email}"></td>
</tr>
<tr>
<td width="200"></td>
<td width="80">
<input type="submit" value="수정하기">
<input type="reset" value="다시입력">
</td>
</tr>
</table>
</form>
</body>
</html>
modMember.jsp
package com.spring.member.vo;
import java.sql.Date;
public class MemberVO {
private String id;
private String pwd;
private String name;
private String email;
private Date joinDate;
public MemberVO() {
//System.out.println("MemberVO 생성자 호출(객체 생성)");
}
public MemberVO(String id, String pwd, String name, String email) {
this.id = id;
this.pwd = pwd;
this.name = name;
this.email = email;
}
public MemberVO(String id, String pwd, String name, String email, Date joinDate) {
this.id = id;
this.pwd = pwd;
this.name = name;
this.email = email;
this.joinDate = joinDate;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getJoinDate() {
return joinDate;
}
public void setJoinDate(Date joinDate) {
this.joinDate = joinDate;
}
}
MemberVO.java
package com.spring.member.service;
import java.util.List;
import org.springframework.dao.DataAccessException;
import com.spring.member.vo.MemberVO;
public interface MemberService {
public List listMembers() throws DataAccessException;
public int addMember(MemberVO memberVO) throws DataAccessException;
public int removeMember(String id) throws DataAccessException;
public int modifyMember(MemberVO memberVO) throws DataAccessException;
public MemberVO memberById(String id) throws DataAccessException;
}
MemberService.java
package com.spring.member.service;
import java.util.List;
import org.springframework.dao.DataAccessException;
import com.spring.member.vo.MemberVO;
import com.spring.member.dao.MemberDAO;
public class MemberServiceImpl implements MemberService {
private MemberDAO memberDAO;
public void setMemberDAO(MemberDAO memberDAO) {
this.memberDAO = memberDAO;
}
@Override
public List listMembers() throws DataAccessException {
List membersList = null;
membersList = memberDAO.selectAllMemberList();
return membersList;
}
@Override
public int addMember(MemberVO memberVO) throws DataAccessException {
return memberDAO.insertMember(memberVO);
}
@Override
public int removeMember(String id) throws DataAccessException {
return memberDAO.deleteMember(id);
}
@Override
public int modifyMember(MemberVO memberVO) throws DataAccessException {
return memberDAO.updateMember(memberVO);
}
@Override
public MemberVO memberById(String id) throws DataAccessException {
return memberDAO.selectMemberById(id);
}
}
MemberServiceImpl.java
package com.spring.member.dao;
import java.util.List;
import org.springframework.dao.DataAccessException;
import com.spring.member.vo.MemberVO;
public interface MemberDAO {
public List selectAllMemberList() throws DataAccessException;
public int insertMember(MemberVO memberVO) throws DataAccessException;
public int deleteMember(String id) throws DataAccessException;
public int updateMember(MemberVO memberVO) throws DataAccessException;
public MemberVO selectMemberById(String id) throws DataAccessException;
}
MemberDAO.java
package com.spring.member.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.springframework.dao.DataAccessException;
import com.spring.member.vo.MemberVO;
public class MemberDAOImpl implements MemberDAO {
private SqlSession sqlSession;
public void setSqlSession(SqlSession sqlSession) {
this.sqlSession = sqlSession;
}
public SqlSession getSqlSession() {
return sqlSession;
}
@Override
public List selectAllMemberList() throws DataAccessException {
List<MemberVO> membersList = null;
membersList = sqlSession.selectList("mapper.member.selectAllMemberList");
return membersList;
}
@Override
public int insertMember(MemberVO memberVO) throws DataAccessException {
int result = sqlSession.insert("mapper.member.insertMember", memberVO);
return result;
}
@Override
public int deleteMember(String id) throws DataAccessException {
int result = sqlSession.delete("mapper.member.deleteMember", id);
return result;
}
@Override
public int updateMember(MemberVO memberVO) throws DataAccessException {
int result = sqlSession.update("mapper.member.updateMember", memberVO);
return result;
}
@Override
public MemberVO selectMemberById(String id) throws DataAccessException {
MemberVO memberVO = (MemberVO) sqlSession.selectOne("mapper.member.selectMemberById", id);
System.out.print("선택한 회원 : ");
System.out.println(memberVO.getId() + ", " + memberVO.getPwd() + ", " + memberVO.getName() + ", " + memberVO.getEmail());
return memberVO;
}
}
MemberDAOImpl.java
package com.spring.member.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
public interface MemberController {
public ModelAndView listMembers(HttpServletRequest request, HttpServletResponse response) throws Exception;
public ModelAndView addMember(HttpServletRequest request, HttpServletResponse response) throws Exception;
public ModelAndView removeMember(HttpServletRequest request, HttpServletResponse response) throws Exception, ServletException, IOException;
public ModelAndView modifyMember(HttpServletRequest request, HttpServletResponse response) throws Exception;
public ModelAndView memberById(HttpServletRequest request, HttpServletResponse response) throws Exception;
}
MemberController.java
package com.spring.member.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import com.spring.member.service.MemberService;
import com.spring.member.service.MemberServiceImpl;
import com.spring.member.vo.MemberVO;
public class MemberControllerImpl extends MultiActionController implements MemberController {
private MemberService memberService;
public void setMemberService(MemberServiceImpl memberService) {
this.memberService = memberService;
}
@Override
public ModelAndView listMembers(HttpServletRequest request, HttpServletResponse response) throws Exception {
String viewName = getViewName(request);
List membersList = memberService.listMembers();
ModelAndView mav = new ModelAndView(viewName);
mav.addObject("membersList", membersList);
return mav;
}
@Override
public ModelAndView addMember(HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
MemberVO memberVO = new MemberVO();
bind(request, memberVO);
int result = 0;
result = memberService.addMember(memberVO);
ModelAndView mav = new ModelAndView("redirect:/member/listMembers.do");
mav.addObject("msg", "insertMember");
mav.setViewName("listMembers");
return mav;
}
@Override
public ModelAndView removeMember(HttpServletRequest request, HttpServletResponse response) throws Exception, ServletException, IOException {
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
memberService.removeMember(id);
ModelAndView mav = new ModelAndView("redirect:/member/listMembers.do");
mav.addObject("msg", "deleteMember");
mav.setViewName("listMembers");
return mav;
}
public ModelAndView form(HttpServletRequest request, HttpServletResponse response) throws Exception {
String viewName = getViewName(request);
ModelAndView mav = new ModelAndView();
mav.setViewName(viewName);
return mav;
}
private String getViewName(HttpServletRequest request) throws Exception {
String contextPath = request.getContextPath();
String uri = (String) request.getAttribute("javax.servlet.include.request_uri");
if(uri == null || uri.trim().equals("")) {
uri = request.getRequestURI();
}
int begin = 0;
if(!((contextPath==null)||("".equals(contextPath)))) {
begin = contextPath.length();
}
int end;
if(uri.indexOf(";")!=-1) {
end = uri.indexOf(";");
} else if(uri.indexOf("?")!=-1) {
end = uri.indexOf("?");
} else {
end = uri.length();
}
String fileName = uri.substring(begin, end);
if(fileName.indexOf(".")!=-1) {
fileName = fileName.substring(0, fileName.lastIndexOf("."));
}
if(fileName.lastIndexOf("/")!=-1) {
fileName = fileName.substring(fileName.lastIndexOf("/"), fileName.length());
}
return fileName;
}
@Override
public ModelAndView modifyMember(HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
MemberVO memberVO = new MemberVO();
bind(request, memberVO);
int result = 0;
result = memberService.modifyMember(memberVO);
ModelAndView mav = new ModelAndView("redirect:/member/listMembers.do");
mav.addObject("msg", "updateMember");
mav.setViewName("listMembers");
return mav;
}
@Override
public ModelAndView memberById(HttpServletRequest request, HttpServletResponse response) throws Exception {
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
MemberVO memberVO = memberService.memberById(id);
ModelAndView mav = new ModelAndView("redirect:/member/modMember.do");
mav.addObject("memInfo", memberVO);
mav.setViewName("modMember");
return mav;
}
public ModelAndView modMember(HttpServletRequest request, HttpServletResponse response) throws Exception {
String viewName = getViewName(request);
ModelAndView mav = new ModelAndView();
mav.setViewName(viewName);
return mav;
}
}
MemberControllerImpl.java
'Java > Spring' 카테고리의 다른 글
Spring #9 : 메이븐과 스프링 STS (230125) (0) | 2023.01.25 |
---|---|
Spring #8 : 스프링 트랜잭션(230120) (0) | 2023.01.20 |
Spring #6 : 스프링-마이바티스 연동(230119) (0) | 2023.01.20 |
Spring #5 : 마이바티스 - 동적 SQL문(230118) (0) | 2023.01.18 |
Spring #4 : 마이바티스 - 회원 최종(230118) (0) | 2023.01.18 |
댓글