jsp에서 transaction사용법
- 작성자 :
- 최*석
- 작성일 :
- 2020-06-29 10:41:40
- 조회수 :
- 2,712
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
context-transaction.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" rollback-for="Exception"/>
<tx:method name="update*" rollback-for="Exception"/>
<tx:method name="delete*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txPointcut" expression="execution(* lab..*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
</aop:config>
</beans>
jsp
<%!
@Resource(name= "txManager")
protected DataSourceTransactionManager txManager;
%>
<%
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus txStatus = txManager.getTransaction(def);
%>
이렇게 사용하려고 하는데
javax.naming.NameNotFoundException: Name [txManager] is not bound in this Context. Unable to find [txManager].
오류가 나옵니다.
이렇게 사용가능한지와 안되면 jsp에서 사용방법을 알려주세요.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="insert*" rollback-for="Exception"/>
<tx:method name="update*" rollback-for="Exception"/>
<tx:method name="delete*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txPointcut" expression="execution(* lab..*Impl.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
</aop:config>
</beans>
jsp
<%!
@Resource(name= "txManager")
protected DataSourceTransactionManager txManager;
%>
<%
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus txStatus = txManager.getTransaction(def);
%>
이렇게 사용하려고 하는데
javax.naming.NameNotFoundException: Name [txManager] is not bound in this Context. Unable to find [txManager].
오류가 나옵니다.
이렇게 사용가능한지와 안되면 jsp에서 사용방법을 알려주세요.
A
안녕하세요.
표준프레임워크센터 입니다.
과거 Model1 개발시에는
JSP에서 DB연결까지 하는경우가 있었지만
최근 표준프레임워크를 비롯한 프레임워크환경에서는
Model2기반에 MVC 패턴을 적용하고 있습니다.
이경우 JSP는 단순히 View를 처리하는 용도로만 사용하셔야 합니다.
다음과 같은 설정으로 인해
다음 클래스에 있는것만 트랜잭션 처리가 가능합니다.
execution(* lab..*Impl.*(..))
JSP에서 직접 DB를 호출하는것은 바람직 하지 않습니다.
감사합니다.
표준프레임워크센터 입니다.
과거 Model1 개발시에는
JSP에서 DB연결까지 하는경우가 있었지만
최근 표준프레임워크를 비롯한 프레임워크환경에서는
Model2기반에 MVC 패턴을 적용하고 있습니다.
이경우 JSP는 단순히 View를 처리하는 용도로만 사용하셔야 합니다.
다음과 같은 설정으로 인해
다음 클래스에 있는것만 트랜잭션 처리가 가능합니다.
execution(* lab..*Impl.*(..))
JSP에서 직접 DB를 호출하는것은 바람직 하지 않습니다.
감사합니다.