๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด ๊ฐ’์ด ์ž˜ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๋Š”๋ฐ
Uncaught ReferenceError : ${value} is not defined at HTMLButtonElement.onclick ๋ผ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฌธ์ž์—ด์ธ ๊ฐ’์„ ๋„˜๊ธธ ๋•Œ๋Š” ' ' ์‹ฑ๊ธ€์ฝ”ํ…Œ์ด์…˜ ๋งˆํฌ๋กœ ๊ฐ์‹ธ์ฃผ์–ด์•ผ ํ•œ๋‹ค๊ณ ํ•จ!
productNo ๋Š” int ๊ฐ’์ด๋ผ ์‹ฑ๊ธ€์ฝ”ํ…Œ์ด์…˜ ๋งˆํฌ๊ฐ€ ์—†์–ด๋„ ๊ฐ’์ด ์ž˜ ๋„˜์–ด๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋ชป์ฐพ์•˜๋‹ค.
์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๋ฌธ์ œ์˜€๋Š”๋ฐ ์‹œ๊ฐ„์„ ๋„ˆ๋ฌด ๋นผ์•—๊น€.

<!-- ์—๋Ÿฌ๋ฐœ์ƒ ์ฝ”๋“œ -->
<button type="button" name="reserveBtn" style="display: none;"
   onclick="addWishlist(this, ${prd.productNo}, ${sessionScope.u.userId})">
</button>

<!-- ์ˆ˜์ • ์ฝ”๋“œ -->
<button type="button" name="reserveBtn" style="display: none;"
   onclick="addWishlist(this, ${prd.productNo}, '${sessionScope.u.userId}')">
</button>

 

๊ฐœ๋ฐœํ™˜๊ฒฝ : STS (Spring Legacy Project)

 

์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ค‘ "There is no getter for property named 'category(์ปฌ๋Ÿผ๋ช…)' in 'class.java.lang.String'" ์ด๋ผ๋Š”

์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ฐธ๊ณ ํ–ˆ๋˜ ์ž๋ฃŒ์™€ ๋™์ผํ•˜๊ฒŒ ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ–ˆ๊ณ , SqlDeveloper ์—์„œ๋„ ๋Œ์•„๊ฐ”๋Š”๋ฐ..

 

 

๊ทธ๋Ÿฌ๋‚˜ but..! ๋””๋ฒจ๋กœํผ์—์„œ๋„ ์ž˜ ๋Œ์•„๊ฐ”๋˜ ์ฟผ๋ฆฌ๋ฌธ์—๋Š” ์ด์ƒ์ด ์—†์—ˆ๊ณ , ๋ฌธ์ œ๋Š” ์•„๋ž˜์˜ ์ฝ”๋“œ์— ์žˆ์—ˆ๋‹ค.

<--! ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ฝ”๋“œ -->

<select id="countTagList" parameterType="String" resultType="int">
	select count(*) from product
	<if test="category != null and category != ''">
		where cateGory = #{category}
	</if>
</select>

 

ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…์ด String ์ด๋ฉด์„œ ๋„˜์–ด์˜จ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช… category๋ฅผ ๋™์  if๋ฌธ์œผ๋กœ ๋ฐ›์„ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ผ๊ณ  ํ•œ๋‹ค.

๋™์ ์ฟผ๋ฆฌ์—์„œ if๋ฌธ์€ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž… ํด๋ž˜์Šค์˜ getter๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ,

String ๋‚ด๋ถ€์—๋Š” getter ๊ฐœ๋…์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๊ณ  ํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ, parameter๋ฅผ cateGory๋กœ ๋ณด๋ƒˆ์–ด๋„ ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์—์„œ ๋‹จ์ผ๊ฐ’์ผ ๊ฒฝ์šฐ ์ž„์˜์˜ value๋กœ ๋ฐ›์•„์ฃผ๋ฉด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ.

<!-- ์ˆ˜์ •ํ•œ ์ฝ”๋“œ 1 -->

<select id="countTagList" parameterType="String" resultType="int">
	select count(*) from product
	where 1=1
	<if test="value != null and value != ''">
		and prd_category = #{value}
	</if>
</select>

 

ํ•ญ์ƒ ์ฐธ์„ ์˜๋ฏธํ•˜๋Š” "where 1=1" ์€ ๊ด€๋ จํ•ด์„œ๋Š” ์‚ฌ์šฉ์„ ์ง€์–‘ํ•ด์•ผํ•œ๋‹ค ์•„๋‹ˆ๋‹ค ์˜๊ฒฌ์ด ์ข€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ

๊ณต๋ถ€๋ฅผ ๋” ํ•ด๋ด์•ผ๊ฒ ์ง€๋งŒ,  where์ ˆ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ฒฐ๊ณผ๋Š” ์œ„ ์ฝ”๋“œ์™€ ๋™์ผํ•˜๋‹ค. 

<!-- ์ˆ˜์ •ํ•œ ์ฝ”๋“œ 2 -->

<select id="countTagList" parameterType="String" resultType="int">
	select count(*) from product
	<where>
		<if test="value != null and value != ''">
			and prd_category = #{value}
		</if>
	</where>
</select>

 

 

 

 

 

์ฐธ๊ณ )  ์—๋Ÿฌ๋ฉ”์„ธ์ง€ ๊ด€๋ จ

https://bcdragonfly.tistory.com/10

 

[mybatis] There is no getter for property named : ํŒŒ๋ผ๋ฏธํ„ฐ ํ•˜๋‚˜ ์ผ๋•Œ ์—๋Ÿฌ

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'param' in 'class java.lang.String' ๋ถ„๋ช…ํžˆ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž˜ ๋„˜๊ฒจ์ฃผ์—ˆ๊ณ  ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์—์„œ๋„ ์ž˜ ๋ฐ›์•˜๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ ... ํ™ฉ๋‹นํ•œ ์—๋Ÿฌ๊ฐ€ ๋œจ

bcdragonfly.tistory.com

 

 

์ฐธ๊ณ ) ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค ๋™์ ์ฟผ๋ฆฌ ๊ด€๋ จ

 https://devscb.tistory.com/60

 

Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) ๋™์  ์ฟผ๋ฆฌ if๋ฌธ ๋ฌธ๋ฒ•, Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) <if> ์‚ฌ์šฉ๋ฒ•, Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) <if>์‚ฌ

Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) ๋™์  ์ฟผ๋ฆฌ if๋ฌธ ๋ฌธ๋ฒ•, Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) ์‚ฌ์šฉ๋ฒ•, Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) ์‚ฌ์šฉ๋ฐฉ๋ฒ•, Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค) if ๊ฒ€์‚ฌ๋ฐฉ๋ฒ• Mybatis(๋งˆ์ด๋ฐ”ํ‹ฐ์Šค)๋Š” DBMS์—‘์„ธ์Šค๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” Java

devscb.tistory.com

 

์ฐธ๊ณ ) where 1=1 ๊ตฌ๋ฌธ ๊ด€๋ จ

https://jdm.kr/blog/7

 

Oracle WHERE 1=1 ๊ตฌ๋ฌธ์— ๋Œ€ํ•˜์—ฌ :: JDM's Blog

์ด๋ฒˆ์—” ์˜ค๋ผํด์—์„œ WHERE 1=1์— ๋Œ€ํ•˜์—ฌ ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ์ด๋ฏธ ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ์—์„œ ํ•œ๋ฒˆ ํ–ˆ์—ˆ๋‹ค(2013.03.18). ํ•˜์ง€๋งŒ ์˜›๋‚  ๊ฒƒ์ด๊ธฐ๋„ ํ•˜๊ณ  ์ง€๊ธˆ์€ ๊ฐœ๋ฐœ๋ ฅ(?)์ด ์กฐ๊ธˆ์€ ์ƒ์Šน

jdm.kr

 

web.xml ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

 

Project ํƒญ์—์„œ clean์„ ์‹œ๋„ํ•˜๊ณ , ์žฌ๋ถ€ํŒ…์„ ํ•ด๋„ ์—๋Ÿฌ๋Š” ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ , ์˜คํžˆ๋ ค ์ €๋Ÿฐ ํŒ์—…์ฐฝ์ด ๋–ด๋‹ค.

์—๋Ÿฌ๋ฉ”์„ธ์ง€๋ฅผ ์ฝ์–ด๋ณด๊ณ , ์ฝ”๋“œ๋ฅผ ์ฒœ์ฒœํžˆ ๋œฏ์–ด๋ณด๋‹ˆ,

<servlet> ํƒœ๊ทธ์™€ <servlet-mapping>ํƒœ๊ทธ๋ฅผ ๋‹ซํž˜ ํƒœ๊ทธ </web-app> ์˜ ๋ฐ”๊นฅ์ชฝ์— ์ž‘์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋˜ ๊ฒƒ.

์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์— ๋„ฃ์–ด์ฃผ๋‹ˆ ์—๋Ÿฌ๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์—์„œ ๋‹ซ๊ธฐ..

 

 

+ Recent posts