클라이언트 에서 Form으로 submit(); 한 경우


스프링 컨트롤러에서 

@RequestParam

어노테이션을 사용하여 받으면 key, values 받아진다.


EX)


----CONTROLLER

@RequestMapping(value="/map", method = RequestMethod.POST)

public Response getMap(@RequestParam Map<String , Object> dataMap) {

Response res = new Response();

boolean result = false;

result = noticeService.insertMap(dataMap);

if(result) {

res.setData(result);

}

return res;

}




-----CLIENT

.

.

.

.

document.noticeCreateForm.submit();

return true;

}

Maven install 시 ERROR 





Window > Preferences > Java > Installed JREs > 

Add > Type 

 - Standard VM 

> JRE home

 - C:\Program Files\Java\jdk1.8.0_65 (자기 컴퓨터의 java jdk 경로)

Finish






Window > Preferences > Java > Installed JREs > 

Execution Environments 탭

JavaSE-1.8 > jdk1.8.0_65[perfect match] 선택



  • DispatcherServlet에도 transation 세팅을 해줘야한다.

( Application Context의 설정이 DispatcherServlet의 설정과 공유되는것이 아니기때문에 각각 해줘야함. )



try catch 문으로 되어있으면 exception이 catch문에서 printStackTrace로 잡히기 때문에

public class UserMapperDaoImpl implements UserMapperDao{

	private SqlSession sqlSession;
	//gettter and setter for sqlSession
	@Override
	public void saveUser(User user) {
		// TODO Auto-generated method stub
		try {	
			UserMapperDao userMapper=sqlSession.getMapper(UserMapperDao.clas s);
			userMapper.saveUser(user);
			if(user.getName().equalsIgnoreCase("abc")){
				throw new Exception("Simulate Error...");
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

} catch(Exception e) {

e.printStackTrace();

thows new RuntimeException();

}


OR 


Try catch 문을 없애고 


public FourPillarsData getSajuFourPillars(FourPillarsInputData inputData) throws Exception{


이렇게 처리한다.




확인방법 


트랜잭션 처리가 되었으면,


DEBUG: org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
DEBUG: org.mybatis.spring.SqlSessionUtils - Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@304648]


처리가 되지 않았으면,


DEBUG: org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
DEBUG: org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1a51312] was not registered for synchronization because synchronization is not active



그리고 DefaultSqlSession 객체 주소가 각각의 프로세스 처리 Session 아이디와 같아야 된다


그래야만 롤백할때 한번에 날릴수있다.





참고


http://forum.spring.io/forum/spring-projects/data/125994-transaction-not-rolling-back-in-spring-mybatis-mysql

http://lunal.tistory.com/entry/spring-mybatis-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EC%84%A4%EC%A0%95

[MySQL] 1449 ERROR - The user specified as a definer



"The user specified as a definer ('root'@'%') does not exist"


root가 가지고 있는 권한 문제 이므로


해당 데이터베이스로 접속하여 권한을 주면된다.

ex)

use mysql;
grant all on *.* to 'root'@'%' identified by 'password' with grant option;


'DataBase > MySQL' 카테고리의 다른 글

[mysql/mariadb] utf8mb4 언어셋 및 표현범위  (0) 2017.03.13
[MYSQL] duplicate INSERT  (0) 2016.03.25
[MySQL] TIMEZONE 설정  (0) 2016.03.07
[CentOS] mysql, maria DB sql 파일 import  (0) 2016.02.29
CentOS 7 mariaDB  (0) 2016.02.29

JSP submit 값 변경



EX) input 박스 id, name 값 startDt 변경시


<form>

.

.

.

<tr>

<th width=150 id="howdo-table-center">노출 시작</th>

<td><input type="text" name="startDt" id="startDt" size="30" >

<input type="hidden" id="adminId" name="adminId" value="${memberinfo.adminId }">

</td>

</tr>


.

.

</from>


var startDt = document.getElementById("startDt");

startDt.value = moment($("#startDt").val()).unix();

document.xxxform.submit();

'Programming > JSP' 카테고리의 다른 글

JSP에서 웹 애플리케이션의 절대 주소  (0) 2016.02.28

+ Recent posts