관리 메뉴

I LOVE EJ

struts의 bean태그와 html태그 본문

Web Development/JSP

struts의 bean태그와 html태그

BeOne 2007. 10. 15. 15:37

<%@ page language="java" contentType="text/html; charset=Shift_JIS"
    pageEncoding="Shift_JIS"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page language="java" %>  


//태그를 쓰기위한 태그라이브러리 선언. tld파일은 태그사용법이 적혀있는 참조서 정도로 생각하면 되겠다. uri의 위치에 있는 tld파일을 참조하여, prefix에 적혀 있는 이름으로 사용하라..라는 것이다.
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>


//이것은 jsp의 include태그와 비슷한 용도이다. 틀린점이라면 결과를 가지고 와서 출력하는 것이 아니라, page에 지정된 페이지에 있는 bean값만을 가져와 id라는 이름으로 써주고자 할때 사용하면 되겠다.
<bean:include id="confirmInit" page="/confirmInit.jsp" />


<html:html>
<head>
<title>내가만든 첫번째 스트러츠 어플리케이션!</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<link href="./css/common.css" rel="stylesheet" type="text/css" />


<script language="JavaScript">
<!--
var deptInfor;

function init() {   //이와 같은 식으로 스크립트안에도 사용가능하다.
<logic:messagesPresent>
 alert("등록중에 에러가 발생했습니다.확인해주세요");
</logic:messagesPresent>

 }
}
//-->
</script>


//요것은 head태그 사이에만 넣어야만 한다. 여기에 href로 지정을 해줄경우, 말그대로 base로 이동하는 절대경로가 지정이 된다. 하지만 각자 상대경로를 따로지정해 줄수는 있다. 지정이 안된것은 여기서 지정한 주소대로 갈것이다.
<html:base/>
</head>


<body onLoad="init();">    //body를 실행하면서 init()도 실행하게 되겠다.


<logic:messagesPresent>
   <bean:message key="errors.header"/>
   <ul>
   <html:messages id="error">
      <li><bean:write name="error"/></li>
   </html:messages>
   </ul><hr />
</logic:messagesPresent>


<html:form method="post" action="/CodeManager" >//html의 비슷한 같은 모습이다.


<html:hidden property="employeeId" />   //form에서 submit되는 곳으로
<html:hidden property="accessType" />

 

//name으로 지정되어 있는 빈에 각 property에 해당하는 값을 찾아 넣어줄수 있다.

<logic:present name="employeeForm">
<html:hidden name="employeeForm" property="id" />
<html:hidden name="employeeForm" property="password" />
<html:hidden name="employeeForm" property="flg" />
<html:hidden name="employeeForm" property="name" />
</logic:present>


<h1>이것은 내가 만든 첫번째 스트러츠 어플리케이션이다.</h1>

//이제 html의 inputtype속성을 알아본다. select, buttion, text, submit, password등등
<table>

//html select에 대응하는 태그.
 <tr>
  <td class="mainDetail">
   <html:select name="code.list" property="codeType">
    <html:optionsCollection name="codeManagerFrm" property="codeTypes" value="value"

         label="label" />
   </html:select>
   <font color="cc3333">[必須]</font>
  </td>
 </tr>

//html text에 대응하는 태그.
 <tr>
  <td class="mainHead">コード</td>
  <td class="mainDetail">
   <html:text name="code.list" property="code" styleClass="engtext" />
   <font color="cc3333">[新規登録のみ必須]</font>
  </td>
 </tr>

//html버튼에 대응하는 태그.
 <tr>
  <td align="right" valign="middle" colspan="2" height="30">
   <html:button property="cmdSearch" value="검색" onclick="codeConfirm('search');" />
   <html:button property="cmdInsert" value="신규작성" onclick="codeConfirm('insert');" />
   <html:button property="cmdUpdate" value="갱신" onclick="codeConfirm('update');"

        disabled="true" />
   <html:button property="cmdDelete" value="삭제" onclick="codeConfirm('delete');"

        disabled="true" />
   <html:button property="cmdDefault" value="클리어" onclick="codeDefault();" />
   <!-- <html:button property="cmdExit" value="닫기" onclick="exit();" /> -->
  </td>
 </tr>


 <tr>
  <td class="mainDetail"><font color="FF0000"><html:errors property="deptCd" /></font></td>
 </tr>


 <tr>
  <td class="mainHead" rowspan="2">職位区分名</td>
  <td class="mainDetail">
   <html:select property="positionCd" >
    <html:options collection="positionCds" property="value" labelProperty="label" />
   </html:select>
  </td>
 </tr>
 <tr>
  <td class="mainHead" rowspan="2">性別</td>
  <td class="mainDetail">
   <html:select property="sex">
    <html:options collection="sexs" property="value" labelProperty="label" />
   </html:select>
   <font color="FF0000">[必須]</font>
  </td>
 </tr>

//패스워드에 대응하는 태그
 <tr>
  <td class="mainHead" rowspan="2">パスワード</td>
  <td class="mainDetail">
   <html:password property="employeePwd" styleClass="engtext" />
   <font color="FF0000">[必須]</font>
  </td>
 </tr>

//button에 대응하는 태그
 <tr>
  <td align="center" valign="middle" colspan="2" height="30">
   <html:button property="cmdConfirm" value="登録" onclick="execInput();" />
   <html:button property="cmdReturn" value="戻る" onclick="back();" />
  </td>
 </tr>


//값이 있으면 나타내 주어라.
 <logic:present name="employee.list" property="employeeList" scope="request">

//포문 역할을 해주는 태그
 <logic:iterate id="employeeInfo" name="employee.list" property="employeeList" scope="request">
 <tr>
  <td class="mainDetail">

    //employeeInfo의 idx에 해당하는 값을 써줘라..
   <bean:write name="employeeInfo" property="idx" />.
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="employeeId" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="nameKanji" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="nameKana" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="companyCdName" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="deptCdName" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="positionCdName" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="tel" />
  </td>
  <td class="mainDetail">
   <bean:write name="employeeInfo" property="statusFlgName" />
  </td>
  <td class="mainDetail">
   <input type="button" name="cmdDetailView" value="상세" onclick="viewEmployee

          ('<bean:write name="employeeInfo" property="employeeId" />');" />
  </td>
 </tr>
 </logic:iterate>
 </logic:present>

//페이징 처리 해주는 태그
 <tr>
  <td class="mainDetail" align="center" valign="middle" colspan="10" height="30">
  <logic:greaterThan name="employee.list" property="beforePage" value="0">
   <input type="button" name="cmdPrevPage" value="前ページ" onclick="prevPage(<bean:write

          name="employee.list" property="beforePage" />);">
  </logic:greaterThan>
   |
   <html:select name="employee.list" property="thisPage">
    <html:optionsCollection name="employee.list" property="pageList" value="value"

          label="label" />
   </html:select>
   /
   <bean:write name="employee.list" property="totalPage" scope="request" />
   ページ
   <html:button property="cmdPageMove" value="移動" onclick="searchEmployee();" />
   |
  <logic:greaterThan name="employee.list" property="nextPage" value="0">
   <input type="button" name="cmdNextPage" value="次ページ" onclick="nextPage(<bean:write

        name="employee.list" property="nextPage" />);">
  </logic:greaterThan>
  </td>
 </tr>
</table>  //테이블을 끝낸다.
</html:form>//폼을 끝낸다.
</body>  //body를 끝낸다.
</html:html>  //html을 끝낸다.