読者です 読者をやめる 読者になる 読者になる

With a single step

~千里の道も一歩からと信じたいノート~

Eclipse カラーテーマの設定

Eclipseのカラーテーマ設定方法の備忘録(*^^*)


futurismo.biz

Rainbow Dropsxmlが見つからなかったため、以下を参考にしてファイルを作成する。

github.com

↓作成したファイル↓
https://drive.google.com/open?id=0By8ZL98FTmlONmg5WHRXbVFMYUE

↓フォント↓
Introducing Source Han Code JP

更新可能なネストした繰り返し

今日は「更新可能なネストした繰り返し」を学ぶ。
例のごとく、SAStruts本家のサイトは当てにしないφ(・ω・ )

ソース

index.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Nested Foreach Update</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

  <h1>Tutorial: Nested Foreach Update</h1>

  <html:errors />
  <s:form>
    <table border="1">
      <c:forEach var="mapItems" varStatus="s" items="${mapItemsItems}">
        <tr>
          <c:forEach var="m" varStatus="s2" items="${mapItems}">
            <td><input type="text"
              name="mapItemsItems[${s.index}][${s2.index}].id"
              value="${f:h(m.id)}" /></td>
            <td><input type="text"
              name="mapItemsItems[${s.index}][${s2.index}].name"
              value="${f:h(m.name)}" /></td>
          </c:forEach>
        </tr>
      </c:forEach>
    </table>
    <br />
    <input type="submit" name="submit" value="サブミット" />
  </s:form>
</body>
</html>
NestedForeachUpdateAction.java
package tutorial.action;

import javax.annotation.Resource;

import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;

import tutorial.form.NestedForeachUpdateForm;

public class NestedForeachUpdateAction {

  @ActionForm
  @Resource
  protected NestedForeachUpdateForm nestedForeachUpdateForm;

  @Execute(validator = false)
  public String index() {
    nestedForeachUpdateForm.initialize();
    return "index.jsp";
  }

  @Execute(validator = false)
  public String submit() {
    return "index.jsp";
  }
}
NestedForeachUpdateForm.java
package tutorial.form;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class NestedForeachUpdateForm {

  public List<List<Map<String, Object>>> mapItemsItems = new ArrayList<List<Map<String, Object>>>();

  public void initialize() {
    for (int i = 0; i < 10; i++) {
      List<Map<String, Object>> mapItems = new ArrayList<Map<String, Object>>();
      for (int j = 0; j < 2; j++) {
        Map<String, Object> m = new HashMap<String, Object>();
        m.put("id", i * 10 + j);
        m.put("name", "name" + i + j);
        mapItems.add(m);
      }
      mapItemsItems.add(mapItems);
    }
  }
}

ポイント



更新可能な繰り返し

今日は「更新可能な繰り返し」を学ぶ。
例のごとく、SAStruts本家のサイトは当てにしないφ(・ω・ )

ソース

index.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Foreach Update</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

  <h1>Tutorial: Foreach Update</h1>
  <html:errors />
  <s:form>
    <table border="1">
      <c:forEach var="mapItems" items="${mapItems}">
        <tr>
          <td><html:text name="mapItems" property="id" indexed="true" /></td>
          <td><html:text name="mapItems" property="name" indexed="true" /></td>
        </tr>
      </c:forEach>
    </table>
    <br />
    <input type="submit" name="submit" value="サブミット" />
  </s:form>
</body>
</html>
ForeachUpdateAction.java
package tutorial.action;

import javax.annotation.Resource;

import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;

import tutorial.form.ForeachUpdateForm;

public class ForeachUpdateAction {

  @ActionForm
  @Resource
  protected ForeachUpdateForm foreachUpdateForm;

  @Execute(validator = false)
  public String index() {
    foreachUpdateForm.initialize();
    return "index.jsp";
  }

  @Execute(validator = false)
  public String submit() {
    return "index.jsp";
  }
}
ForeachUpdateForm.java
package tutorial.form;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ForeachUpdateForm {

  public List<Map<String, Object>> mapItems = new ArrayList<Map<String, Object>>();

  public void initialize() {
    for (int i = 0; i < 10; i++) {
      Map<String, Object> m = new HashMap<String, Object>();
      m.put("id", i);
      m.put("name", "name" + i);
      mapItems.add(m);
    }
  }
}

ポイント



ネストした繰り返し

今日は「ネストした繰り返し」を学ぶ。
例のごとく、SAStruts本家のサイトは当てにしないφ(・ω・ )

ソース

index.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Nested Foreach</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

<h1>Tutorial: Nested Foreach</h1>

<table border="1">
<c:forEach var="mapItems" items="${mapItemsItems}">
    <tr>
    <c:forEach var="m" items="${mapItems}">
        <td>${f:h(m.id)}</td>
        <td>${f:h(m.name)}</td>
    </c:forEach>
    </tr>
</c:forEach>
</table>

</body>
</html>
NestedForeachAction.java
package tutorial.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.seasar.struts.annotation.Execute;

public class NestedForeachAction {

  public List<List<Map<String, Object>>> mapItemsItems = new ArrayList<List<Map<String, Object>>>();

  @Execute(validator = false)
  public String index() {
    for (int i = 0; i < 10; i++) {
      List<Map<String, Object>> mapItems = new ArrayList<Map<String, Object>>();
      for (int j = 0; j < 2; j++) {
        Map<String, Object> m = new HashMap<String, Object>();
        m.put("id", i * 10 + j);
        m.put("name", "name" + i + j);
        mapItems.add(m);
      }
      mapItemsItems.add(mapItems);
    }
    return "index.jsp";
  }
}

ポイント



ボタンを使った繰り返し

今日は「ボタンを使った繰り返し」を学ぶ。
例のごとく、SAStruts本家のサイトは当てにしないφ(・ω・ )

ソース

index.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Foreach Button</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

<h1>Tutorial: Foreach Button</h1>

<table border="1">
<c:forEach var="m" items="${mapItems}">
<tr>
<td>${f:h(m.id)}</td>
<td>${f:h(m.name)}</td>
<td>
<s:form>
<html:hidden property="id" value="${m.id}"/>
<input type="submit" name="result" value="結果ページへ"/>
</s:form>
</td>
</tr>
</c:forEach>
</table>

</body>
</html>
result.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Foreach Button result</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

<h1>Tutorial: Foreach Button result</h1>
id: ${f:h(id)}
</body>
</html>
ForeachButtonAction.java
package tutorial.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;

import tutorial.form.ForeachButtonForm;

public class ForeachButtonAction {

	public List<Map<String, Object>> mapItems = new ArrayList<Map<String, Object>>();

	@ActionForm
	@Resource
	protected ForeachButtonForm foreachButtonForm;

	@Execute(validator = false)
	public String index() {
		for (int i = 0; i < 10; i++) {
			Map<String, Object> m = new HashMap<String, Object>();
			m.put("id", i);
			m.put("name", "name" + i);
			mapItems.add(m);
		}
		return "index.jsp";
	}

	@Execute(validator = false)
	public String result() {
		return "result.jsp";
	}
}
ForeachButtonForm.java
package tutorial.form;

public class ForeachButtonForm {

	public String id;
}

ポイント

デバッグしてhiddenのvalue値を追う必要あり

他のサイトを表示

今日は「他のサイトを表示」を学ぶ。
例のごとく、SAStruts本家のサイトは当てにしないφ(・ω・ )

ソース

index.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Redirect</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

<h1>Tutorial: Redirect</h1>

<html:errors/>
<s:form>
<input type="submit" name="showGoogle" value="Googleを表示"/>
</s:form>
</body>
</html>
RedirectAction.java
package tutorial.action;

import org.seasar.struts.annotation.Execute;

public class RedirectAction {

	@Execute(validator = false)
	public String index() {
		return "index.jsp";
	}

	@Execute(validator = false, redirect = true)
	public String showGoogle() {
		return "http://www.google.co.jp";
	}
}

ポイント

・@Execute redirect属性

@Execute redirect属性

qiita.com
redirect属性のデフォルトはfalseでフォワードするけど、
trueに設定することでリダイレクトするわけねφ(・ω・ )