@AfterReturning
のついたメソッドの中でリクエスト時のパラメータを取得したいです。
stackoverflow通りにやりましたが、
例えば、usernameパラメータ取得の
request.getParameter("username")
では取得した値はnullでした。
spring分かる人いらっしゃいますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
以下のような記述をしましたら、特に問題なく取得できますね。
java
1import javax.servlet.http.HttpServletRequest; 2 3import org.aspectj.lang.annotation.AfterReturning; 4import org.aspectj.lang.annotation.Aspect; 5import org.aspectj.lang.annotation.Before; 6import org.springframework.stereotype.Component; 7import org.springframework.web.context.request.RequestAttributes; 8import org.springframework.web.context.request.RequestContextHolder; 9import org.springframework.web.context.request.ServletRequestAttributes; 10 11import lombok.extern.log4j.Log4j2; 12 13/** 14 * @author a-pz 15 * 16 */ 17@Aspect 18@Component 19@Log4j2 20public class ServiceAdvise { 21 22 @Before("execution(* com.github.apz.springsample.service.*.*(..))") 23 public void before() { 24 log.info("before"); 25 26 RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); 27 ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)attributes; 28 HttpServletRequest request = servletRequestAttributes.getRequest(); 29 log.info("param = {}" , request.getParameter("param")); 30 } 31 32 @AfterReturning("execution(* com.github.apz.springsample.service.*.*(..))") 33 public void after() { 34 log.info("after"); 35 36 RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); 37 ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)attributes; 38 HttpServletRequest request = servletRequestAttributes.getRequest(); 39 log.info("param = {}" , request.getParameter("param")); 40 } 41} 42
http://127.0.0.1:8080/?param=abcde
のときのログ出力↓
2018-08-02 23:56:58,600 INFO c.g.a.s.a.ServiceAdvise [http-nio-8080-exec-1] before 2018-08-02 23:56:58,600 INFO c.g.a.s.a.ServiceAdvise [http-nio-8080-exec-1] param = abcde 2018-08-02 23:54:12,896 INFO c.g.a.s.a.ServiceAdvise [http-nio-8080-exec-1] after 2018-08-02 23:54:12,896 INFO c.g.a.s.a.ServiceAdvise [http-nio-8080-exec-1] param = abcde
beforeがないときも問題ありませんでした。
投稿2018/08/02 14:57
総合スコア12011
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/02 23:48