본문 바로가기
STUDY/JSP

Jsp 4일차 - submit & button

by Anne of Green Galbes 2019. 2. 15.

1. button과 submit

① submit

○ 무조건 action을 찾아감

○ action에다가는 값을 가지고 갈 페이지를 적는다 ("listTable_ok.jsp")

○ 컬럼의 이름은 name의 이름과 같아야 한다.

○ 일반적으로 스크립트가 없을때 사용

② button

○ 스크립트가 있을때는 button을 사용하고 맨 마지막에

document.myForm.submit();document.myForm.action=”listTest_ok.jsp” 작성


2.예제

add / remove / add all / remove all 클릭시 Available↔Configured 이동


① listTest.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<style type="text/css">

body {

font-size: 10pt;

}

.itemBtn{

font-size:9pt;

color: rgb(0,0,0);

background-color: rgb(240,240,240);

width: 30pt;

}

.btn{

font-size:9pt;

color: rgb(0,0,0);

background-color: rgb(240,240,240);

}

.itemList{

font-size: 9pt;

width: 100pt;

}

</style>

<script type="text/javascript">

function itemAdd() {

var f = document.myForm;

var leftItem = f.leftItem;

//하나하나 다 객체를 생성해줘야한다.

leftItem[0] = new Option('배수지','배수지');

leftItem[1] = new Option('전지현','전지현');

leftItem[2] = new Option('이하나','이하나');

leftItem[3] = new Option('천송이','천송이');

leftItem[4] = new Option('한가인','한가인');

leftItem[5] = new Option('이윤성','이윤성');

leftItem[6] = new Option('배슬기','배슬기');

}

function itemMove(val) {

var f = document.myForm;

var source,target;

if(val=="left"){

source = f.rightItem;

target = f.leftItem;

}

else{

source = f.leftItem;

target = f.rightItem;

}

var n,i;

n = target.length;

for(i=source.length-1;i>=0;i--){

if(source.options[i].selected){

target[n++] = new Option(source.options[i].text,source.options[i].value);

source[i] = null;

}

}

}

function sendIt() {

var f = document.myForm;

if(f.rightItem.length==0){

alert("쪽지 보낼 사람을 선택해주세요");

f.rightItem.focus();

return;

}

if(!f.msg.value){

alert("메세지를 입력해주세요");

f.msg.focus();

return;

}

for(var i=0;i<f.rightItem.length;i++){

f.rightItem[i].selected = true;

//같은 내용 f.rightItem.options[i].selecter = true;

}

f.action = "listTest_ok.jsp";

f.submit(); /* 모든 조건문을 실행한 뒤 submit 실행. action으로 찾아가는 경로. */

}

</script>

</head>


<body onload="itemAdd();"> <!-- 초기화할때 많이 사용 -->


<!-- 자바스크립트에서는 name을 통해 설정이 가능하기 때문에 name을 설정 해 주어야한다 -->

<form method="post" name="myForm">


<table border="0" style="font-size: 10pt">

<tr align="center">

<td width="150">전체 리스트</td>

<td width="70">&nbsp;</td>

<td width="150">받는 사람</td>

</tr>

<tr align="center">

<td width="150">

<select name="leftItem" multiple="multiple" size="7" class="itemList"> <!-- 무조건 인덱스 번호가 생성 -->

<!-- <option value="배수지">배수지</option> //이렇게 생성하면 이동 불가 -->

</select>

</td>

<td width="70">

<input type="button" value="▶" class="itemBtn" onclick="itemMove('right');"></br></br>

<input type="button" value="◀" class="itemBtn" onclick="itemMove('left');"></br>

</td>

<td width="150">

<select name="rightItem" multiple="multiple" size="7" class="itemList">

<!-- <option value="배수지">배수지</option> -->

</select>

</td>

</tr>

<tr align="center">

<td colspan="3">

</br>메세지</br>

<textarea rows="5" cols="50" name="msg" ></textarea>

</td>

</tr>

<tr align="center">

<td colspan="3">

<input type="button" value="쪽지 보내기" class="btn" onclick="sendIt();">

</td>

</tr>

</table>


</form>


</body>


</html>

listTest.jsp

버튼 사용시 form에 action="listTest_ok.jsp"가 있어도 listTable_ok.jsp로 넘어가지 않으므로,

document.myForm.submit();document.myForm.action=”listTest_ok.jsp”를 작성해주어야 한다. ▶ 작성 위치 확인


② listTest_ok.jsp

<%@page import="sun.misc.Perf.GetPerfAction"%>

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");


String msg = request.getParameter("msg");

String rightItem[] = request.getParameterValues("rightItem");

msg = msg.replaceAll("\r\n", "</br>");

String str = "";

if(rightItem!=null){

for (String temp : rightItem){

str += temp +" ";

}

}

%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>


<body>

받는사람: <%=str %></br>

메세지</br>

<%=msg %></br>

</body>


</html>

결과

listTest.jsp


listTest.jsp ▶클릭


listTest_ok.jsp


3. 예제(2) : button과 submit

① button1.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

function sendIt(val){

//var f = document.myForm;

var f = document.forms[0]; //form도 자동으로 인덱스가 생성된다

if(!f.name.value){

alert("이름을 입력해주세요");

f.name.focus();

return;

}

if(val=='a'){

f.action = "button2.jsp";

}

else{

f.action = "button3.jsp";

}

f.submit();

}

function sendData() {

var f = document.forms[1];

if(!f.name.value){

alert("이름을 입력해주세요");

f.name.focus();

return false;

}

f.submit();

}

</script>

</head>


<body>


<form action="" method="post" name="myForm" >

이름:<input type="text" name="name"></br>

<input type="button" value="첫번째 전송" onclick="sendIt('a');">

<input type="button" value="두번째 전송" onclick="sendIt('b');">

</form>


<form action="" method="post" name="myForm1" onsubmit="return sendData();">

이름:<input type="text" name="name"></br>

<input type="submit" value="첫번째 전송" onclick="this.form.action='button2.jsp';">

<input type="submit" value="두번째 전송" onclick="this.form.action='button3.jsp';">

</form>


</body>


</html>

결과

<input type="button" value="첫번째 전송" onclick="sendIt('a');">

<input type="button" value="두번째 전송" onclick="sendIt('b');">

① 버튼 클릭시 sendIt(val) 실행

② 이름을 입력하지 않으면 이름을 입력하라는 알람창 실행

③ 넘어간 값(val)이 a이면 button2.jsp실행

                         아니면 button3.jsp 실행


<input type="submit" value="첫번째 전송" onclick="this.form.action='button2.jsp';">

<input type="submit" value="두번째 전송" onclick="this.form.action='button3.jsp';">

① submit 클릭시


② button2.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>


<body>

첫번째:<%=name %></br>

</body>


</html>


button3.jsp

<%@ page contentType="text/html; charset=UTF-8"%>

<%

request.setCharacterEncoding("UTF-8");

String name = request.getParameter("name");

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>


<body>

두번째:<%=name %></br>

</body>


</html>

결과

button1.jsp


첫번째 전송 클릭 ▶ button2.jsp


두번째 전송 클릭 ▶ button3.jsp


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

Jsp5일차 - Get방식과 Post방식  (0) 2019.02.15
Jsp 4일차 - buffer  (0) 2019.02.15
Jsp 4일차 - jsp영역 안에서 html사용  (0) 2019.02.15
Jsp 4일차 - request & response  (0) 2019.02.14
Jsp 4일차 - 이벤트  (0) 2019.02.14

댓글