質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Java

    13493questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ソースの意味(spring)

受付中

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 703

iyumoyumo

score 12

ソースの前後は省略しますが、ショッピングサイトを作成する下記コードで
nullを入れている意味がよく分かりません。
ご教授ください。

List<String> itemListAll = shoesLogic.getAllShoesISBNs();
itemListView = shoesLogic.createVShoesList( itemListAll, null);

httpSession.setAttribute("ItemList" , itemListAll);
httpSession.setAttribute("ItemListView", itemshoesListView);

return("LoginSuccess");


isbnsがあるリストを全件取得して、リストをヌルで渡しているのでしょうか?
実際のリストは、全件表示される仕様になっていて2行目のところのなぜnull指定しているかが分かりません。


  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • iyumoyumo

    2015/07/05 10:34

    関係するソースをすべて記入しました。よろしくお願いします。 ①LoginAction.java package shoes.action; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.apache.struts2.interceptor.ServletRequestAware; import shoes.logic.shoesLogic; import shoes.logic.CustomerLogic; import shoes.vbean.Vshoes; @Results({ @Result(name="LoginSuccess", location="shoes.vm", type="velocity"), @Result(name="LoginFault", location="/index.jsp") }) public class LoginAction implements ServletRequestAware { CustomerLogic customerLogic; shoesLogic shoesLogic; private HttpServletRequest request; private List<Vshoes> itemListView; private String account; private String passwd; private String errorMessage; @Action("/Login") public String login() { if (!customerLogic.isPasswordMatched(getAccount(), getPasswd())) { setErrorMessage("ログイン名とパスワードが違います"); return ("LoginFault"); } setErrorMessage(null); HttpSession httpSession = request.getSession(false); if (httpSession != null) { httpSession.invalidate(); } httpSession = request.getSession(); httpSession.setAttribute("Login", getAccount()); List<String> itemListAll = shoesLogic.getAllshoesISBNs(); itemListView = shoesLogic.createVshoesList(itemListAll, null); httpSession.setAttribute("itemList", itemListAll); httpSession.setAttribute("itemListView", itemListView); return ("LoginSuccess"); } public void setCustomerLogic(CustomerLogic customerLogic) { this.customerLogic = customerLogic; } public void setshoesLogic(shoesLogic shoesLogic) { this.shoesLogic = shoesLogic; } public void setServletRequest(HttpServletRequest inRequest) { this.request = inRequest; } public List<Vshoes> getitemListView() { return itemListView; } public void setitemListView(List<Vshoes> itemListView) { this.itemListView = itemListView; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } } ②VShoes.java package shoes.vbean; import java.io.Serializable; import shoes.pbean.TShoes; public class VShoes implements Serializable { private String isbn; private String shoes; private int price; private boolean selected; public VShoes(){} public VShoes (TShoes Shoes) { this.isbn = Shoes.getIsbn(); this.Shoes = Shoes.getShoes(); this.price = Shoes.getPrice(); this.selected = false; } public String getIsbn() { return this.isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public String getShoes() { return this.Shoes; } public void setShoes(String Shoes) { this.Shoes = Shoes; } public int getPrice() { return this.price; } public void setPrice(int price) { this.price = price; } public boolean isSelected() { return selected; } public void setSelected(boolean selected) { this.selected = selected; } } ③ShoesLogin.java package shoes.logic; import java.util.ArrayList; import java.util.List; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Propagation; import shoes.dao.ShoesDAO; import shoes.pbean.TShoes; import shoes.vbean.VShoes; import shoes.vbean.VCheckout; @Transactional(readOnly = true, propagation = Propagation.REQUIRED) public class ShoesLogicImpl implements ShoesLogic{ ShoesDAO Shoesdao; public List<String> getAllShoesISBNs() { List<String> isbns = new ArrayList<String>(); for (TShoes ShoesIter : Shoesdao.retrieveShoesByISBNs(null)) { isbns.add( ShoesIter.getIsbn() ); } return( isbns ); } public List<String> retrieveShoesISBNsByKeyword(String inKeyword) { List<String> isbns = new ArrayList<String>(); for (TShoes ShoesIter : Shoesdao.retrieveShoessByKeyword(inKeyword)) { isbns.add(ShoesIter.getIsbn()); } return(isbns); } public List<VShoes> createVShoesList(List<String> inItemList, List<String> inSelectedList) { List<VShoes> vArrayList = new ArrayList<VShoes>(); for(TShoes ShoesIter : Shoesdao.retrieveShoesByISBNs(inItemList)) { VShoes currentVShoes = new VShoes(ShoesIter); currentVShoes.setSelected(false); if (inSelectedList != null && inSelectedList.size() != 0){ if (inSelectedList.contains(ShoesIter.getIsbn())) { currentVShoes.setSelected(true); } } vArrayList.add(currentVShoes); } return (vArrayList); } public VCheckout createVCheckout(List<String> inSelectedList) { VCheckout vc = new VCheckout(); vc.setTotal(Shoesdao.getPriceByISBNs(inSelectedList)); List<VShoes> viewList = new ArrayList<VShoes>(); for (TShoes iterShoes : Shoesdao.retrieveShoessByISBNs(inSelectedList)) { VShoes vb = new VShoes(iterShoes); vb.setSelected(true); viewList.add( vb ); } vc.setSelecteditems(viewList); return (vc); } public List<String> createCart(List<String> inItemList, List<String> inSelectedList,List<String> inCart){ inCart.removeAll(inItemList); if (inSelectedList != null && inSelectedList.size() != 0) { inCart.addAll(inSelectedList); } return (inCart); } public void setShoesdao (ShoesDAO Shoesdao){ this.Shoesdao = Shoesdao; } }

    キャンセル

  • eripong

    2015/07/05 12:04

    これはちょっと読みにくいですね。 一応、こちらでコピーして整形しましたが、このような場合は、質問を編集して、 ヘルプにあるマークダウンの「コードを入力」を使って整形した結果を追加してもらえると、 助かります。 ヘルプURL: https://teratail.com/help

    キャンセル

  • iyumoyumo

    2015/07/06 15:25

    ご教授ありがとうございます。全件表示するものどれも選択されていない状態とありますが、例えばチェックボックスに何もチェックされていない状態みたいな感じでしょうか?また、もし選択されている状態だとnullではなく何が入りますか?何度も済みませんがよろしくお願いします。。

    キャンセル

回答 3

+1

createVShoesListの実装部分だと、
以下の通りですね。

    public List<VShoes> createVShoesList(List<String> inItemList,
            List<String> inSelectedList) {
        List<VShoes> vArrayList = new ArrayList<VShoes>();
        for (TShoes ShoesIter : Shoesdao.retrieveShoesByISBNs(inItemList)) {
            VShoes currentVShoes = new VShoes(ShoesIter);
            currentVShoes.setSelected(false);
            if (inSelectedList != null && inSelectedList.size() != 0) {
                if (inSelectedList.contains(ShoesIter.getIsbn())) {
                    currentVShoes.setSelected(true);
                }
            }
            vArrayList.add(currentVShoes);
        }
        return (vArrayList);
    }

これを見る限り、第二引数は、
第一引数で指定したVShoesの中で、
選択済みにするもののリストで、nullの場合は何も
選択しない、というもののようです。

そのため、
「2行目のところのなぜnull指定している」かの理由は、
全件表示はするものの、どれも選択しない状態にしたいためと考えられます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/06 15:36

    チェックボックスに何も選択されていない状態、はその通りのイメージです。
    どれかを選択する場合は、選択したいVShoesのISBNのリストを渡します。

    キャンセル

0

shoesLogic.createVShoesListの中を見てみないとなんともいえませんが、第2引数はソートなどのオプションなのかもしれません。nullであれば、ソートせずにnul以外であれば、値に伴いソートを行うなどの。。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

chiku_さんも言われていますが、shoesLogic.createVShoesList()の中身が分からないとどうしようもないですね。
クラスの説明とかないですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/07/04 19:27

    一応、情報の追加のところに説明を書いてもらったのですが、
    私にはこれでは分からなかったのでコードを貼ってもらえないか
    お願いしています。

    キャンセル

  • 2015/07/04 19:43 編集

    失礼、見落としていましたmm
    単純に考えると、リストの挿入位置でしょうか?
    nullの場合は、最後尾とか・・・?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13493questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。