Control tags

Use Struts2 Labels must be imported into the label library first , On the page, use the following code to import Struts2 label :
<%@taglib prefix="s" uri="/struts-tags"%>

if/elseif/else label :

<s:set name="age" value="29">
<s:if test="#age>60">
aged
</s:if>
<s:elseif test="#age>35">
middle-aged person
</s:elseif>
<s:elseif test="#age>15">
puber
</s:elseif>
<s:else>
children
</s:else>

Action Prompt information

actionerror and actionmessage label :

Both tags are used to output Action Information encapsulated in the instance ,actionerror Responsible for output Action Example of getActionErrors() Return value of method .actionmessage Responsible for return Action Example of getActionMessages() Return value of method .

Action Code :

public Class TestAction{
  public String execute(){
    addActionError(" Something went wrong !");  
    addActionMessage(" Please contact the system administrator !"); 
  }
}

Use tag output in the page :

<s:actionerror/>
<s:actionmessage/>

Form labels

Struts2 A lot of form tags are provided , Most form tags and HTML There is a one-to-one correspondence between form labels , Here are just some special form tags . For form tags ,name and value There is a special relationship , Each form element is mapped to Action attribute .

Use Struts2 Labels must be imported into the label library first , On the page, use the following code to import Struts2 label :
<%@taglib prefix="s" uri="/struts-tags"%>

textfield label :
<s:textfield name="person.firstName"/>

checkboxlist label :

Use a simple collection to generate multiple check boxes  
<s:checkboxlist name="a" lable=" Please choose the book you like " labelposition="top" list="{'Java Programming idea ','J2EE Enterprise application practice '}"/>

Easy to use Map Object to generate multiple check boxes
<s:checkboxlist name="b" label=" Please choose the book you like " labelposition="top" list="{'Java Programming idea ':'2012 year 8 month ','J2EE Enterprise application practice ':'2012 year 9 month '}" listKey="key" listValue="value"/>

Use created with multiple objects JavaBean Object to generate multiple check boxes
<s:bean name="com.service.BookService" id="bs"/>
<s:checkboxlist name="b" label=" Please choose the book you like " labelposition="top" list="#bs" listKey="author" listValue="name"/>

public class BookService{
    public Book[]getBooks(){
         return new Book[]{
            new Book("Java Programming idea "," Li Gang ");
            new Book("J2EE Enterprise application practice "," Li Gang ");
         };
    }
}

public class Book{
  private String name;
  private String author;
  
  public Book(String name,String author){
     this.name=name;
     this.author=author;
  }
  //getter&setter...
}

select label :

Use collections to generate drop-down selection boxes

<s:select name="a" lable=" Please choose the book you like " lableposition="top" multiple="true" list="{'Java Programming idea ','J2EE Enterprise application practice '}" />

Easy to use Map Object to generate a drop-down selection box

<s:select name="b" lable=" Please choose the book you like " lableposition="top" multiple="true" list="#{'Java Programming idea ':'2012 year 8 month ','J2EE Enterprise application practice ':'2012 year 9 month '}" listKey="key" listValue="value"/>

Attribute specification :
multiple: Set whether the list box allows multiple choices  
listKey: Specifies an element in the collection as the value
listValue: Specify an element in the collection as the label for the check box

Use the set to put multiple JavaBean Instance to generate the drop-down selection box

<s:bean name="com.service.BookService" id="bs"/>
<s:select name="b" lable=" Please choose the book you like " labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/>

radio label :

Use collections to generate radio boxes

<s:radio name="a" lable=" Please choose the book you like " lableposition="top" multiple="true" list="{'Java Programming idea ','J2EE Enterprise application practice '}" />

Easy to use Map Object to generate a radio box

<s:radio name="b" lable=" Please choose the book you like " lableposition="top" multiple="true" list="#{'Java Programming idea ':'2012 year 8 month ','J2EE Enterprise application practice ':'2012 year 9 month '}" listKey="key" listValue="value"/>

Use the set to put multiple JavaBean Instance to generate a radio box

<s:bean name="com.service.BookService" id="bs"/>
<s:radio name="c" lable=" Please choose the book you like " labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/>

optgroup label :
<s:optgroup lable=" Please choose the book you like " list="#{'Java Programming idea ':'2012 year 8 month '}" listKey="value" listValue="key"/>
<s:optgroup lable=" Please choose the book you like " list="#{'J2EE Enterprise application practice ':'2012 year 9 month '}" listKey="value" listValue="key"/>

token label :
This is a label that prevents multiple forms from being submitted , If you need the label to work , Should be in Struts2 To enable TokenInterceptor Interceptors or TokenSessionStoreInterceptor Interceptor .
token Implementation principle of : Add a hidden field to the form , Every time you load a page , The hidden fields have different values , and TokenInterceptor Then intercept all user requests , If two requests should be made token The values of the corresponding hidden fields are the same , Then block the table

Single submission .
<s:token />

doubleselect label :

doubleselect Tags generate a cascading list box , When you select the first drop-down list box , The content of the second drop-down list box changes with it .
<s:doubleselect lable=" Please choose the book you like "
                name="author"
                list="{' Li Gang ','David'}"
                doubleList="top==' Li Gang '?{'Struts2 Authoritative guide ',' Lightweight Java EE Enterprise application practice '}:{'Java Programming idea ','23 Design patterns '}"/>

Use Map Object to create doubleselect
<s:set name="bs" value="#{' Li Gang ':{'Struts2 Authoritative guide ',' Lightweight Java EE Enterprise application practice '},'David':{'Java Programming idea ','23 Design patterns '}}"/>
<s:doubleselect lable=" Please choose the book you like " 
                size="3"
                name="author"
                list="#bs[top]"
                doubleSize="3"
                doubleName="book"/>

optiontransferselect label :

optiontransferselect The tag generates two list selection boxes , And generate a series of buttons to control the movement of options between the two drop-down lists 、 Lifting . When the form is submitted , The request parameters corresponding to the two list selection boxes will be submitted .

<s:optiontransferselect 
                lable=" Please choose the book you like "
                name="cnbook"
                leftTitle=" Chinese books "
                rightTitle=" Foreign language books "
                list="{'Struts2 Authoritative guide ','Java Programming idea '}"
                multiple="true"
                addToLeftLable=" Move to the left "
                selectAllLable=" Choose all "
                addAllToRightLable=" All right "
                headerKey="cnKey"
                headerValue="--- Choose Chinese books ---"
                emptyOption="true"
                doubleList="{'Expert One-on-One J2EE Design and Development','JavaScript: The Definitive Guide'}"
                doubleName="enBook"
                doubleHeaderKey="enKey"
                doubleHeaderValue="--- Choose foreign books ---"
                doubleEmptyOption="true"
                doubleMultiple="true"
/>

Attribute specification :

list: Set the collection of the first drop-down list selection box

listKey: Set the first drop-down list selection box value attribute

listValue: Set the first drop-down list selection box lable attribute

doubleList: Set the collection of the second drop-down list selection boxes

doubleListKey: Set the selection box of the second drop-down list value attribute

doubleListValue: Set the selection box of the second drop-down list lable attribute

doubleMultiple: Set whether the second drop-down list selection box allows multiple choices

updownselect label :

Use a simple collection to generate drop-down selection boxes for up and down options
<s:updownselect name="a" label=" Please choose the book you like "
                lableposition="top"
                moveUpLable=" Move up "
                list="{'Struts2 Authoritative guide ','Java Programming idea '}"/>

Easy to use Map Object to generate a drop-down selection box for options that can be moved up and down
<s:updownselect name="b" lable=" Please choose the book you like "
                lableposition="top"
                moveDownLable=" Move down the "
                list="{'Struts2 Authoritative guide ':'2012 year 8 month ','Java Programming idea ':'2012 year 9 month '}"
                listKey="key"
                listValue="value"
                emptyOption="true"
/>
               
Use the set to put multiple JavaBean Instance to generate a drop-down selection box for up and down options
<s:bean name="com.service.BookService" id="bs"/>
<s:updownselect name="c" lable=" Please choose the book you like "
                lableposition="top"
                selectAllLable=" Choose all "
                list="#bs.books"
                listKey="author"
                listValue="name"
                multiple="true"
/>

Data labels

bean label :
effect : Used to create a JavaBean example

Example :
<s:bean name="com.dto.Person">
// Set up JavaBean Properties of
<s:param name="name" value="Jay"/>
<s:param name="age" value="29"/>
// The output shows
full name :<s:property name="name"/> 
Age :<s:property name="age"/>
</s:bean>

stay <s:bean.../> Off label access JavaBean
Example :
<s:bean name="com.dto.Person" var="p">
// Set up JavaBean Properties of
<s:param name="name" value="Jay"/>
<s:param name="age" value="29"/>
</s:bean>
// The output shows
full name :<s:property value="#p.name"/>
Age :<s:property value="#p.age"/>

explain : by bean Tag specified var attribute , It means that JavaBean Placed in Stack Context in , So even if not <s:bean.../> Inside , You can also use the var Property to access the JavaBean.

date Date label :

Formatted output of date
Example :
<s:bean var="now" name="java.util.Date">
<s:date name="#now" formar="yyyy/mm/dd"/>
</s:bean>

Put the formatted date value string into StackContext And put in requestScope in , This property is also available id Instead of , But recommended var
Example :
<s:date name="#now" var="abc"/>
<s:property value="abc"/>

debug label :
This tag is mainly used to debug , It generates a hyperlink on the page , Through this link, you can view the ValueStack and Stack Context All value information in , The label has only one

id attribute , It doesn't mean much .
Example :
<s:debug id="deb">

include label :
This tag is used to put a Jsp A page or a Servlet Included in this page
Example :
<s:include value="included-file.jsp">
<!-- Pass in parameters to the included Jsp perhaps Servlet-->
<s:param name="author" value="admin">
</s:include>

Set operations

Determine whether the element is in the specified set :

in: Determine whether the element is in the specified set
Example :
<s:if test="'foo' in {'foo','bar'}">
foo Contained in the collection
</s:if>
<s:else>
foo Not included in the collection
</s:else>

not in: Determine if the element is not in the specified set
Example :
<s:if test="'foo' not in{'foo','bar'}">
foo Not included in the collection
</s:if>
<s:else>
foo Contained in the collection
</s:else>
Take the subset of the specified condition in the set :

?: Take out all the elements that match the selection logic
^: Take out the first element that fits the selection logic
$: Take out the last element that fits the selection logic

Example :
person.relatives.{? #this.gender=='male'}
Take out person All genders of male Set

Iterate over the set :

Iterator: Iterative output List
Example :
<table>
<s:iterator value="{'Jay',  'Jolin',  'Andy'}" id="name" status="st">
<tr>
<td>
<s:property value="#st.index"/>
</td>
<td>
<s:property value="name"/>
</td>
</tr>
</s:iterator>
</table>

Iterator: Iterative output Map
Example :
<table>
<s:iterator value="#{'Jay' : ' Jay Chou ',    'Jolin' : ' Jolin Tsai ',    'Andy' : ' Lau Andy '}" id="score" status="st">
<tr>
<td>
<s:property value="key"/>
</td>
<td>
<s:property value="value"/>
</td>
</tr>
</s:iterator>
</table>

iterator Other methods in tags :

getCount():  Returns several elements of the current iteration
getIndex():  Returns the index of the currently iterated element
isEven():    Returns whether the index of the iterated element of the current element is even
isOdd():     Returns whether the index of the iterated element of the current element is odd
isFirst():   Returns whether the current iterated element is the first one
isLast():    Returns whether the current iterated element is the last one

Example :
<table>
<s:iteraotr value="{'Jay','Jolin','Andy'}" id="name" status="st">
<tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
<td>
<s:property value="name"/>
</td>
</tr>
</s:iterator>
</table>

Stack Context Object and access in

Access to the root object :

Conventional OGNL Expression evaluation , The system assumes that there is only one root object . If the system Stack Context Contains two objects ,foo and bar, They are Context The names in are foo and bar, And will foo Set to Context The root object of .

Access the root object foo Properties of : #foo.blah or blah
Access other objects :  #bar.blah

If the attribute to be accessed belongs to the root object , You can directly access the property , Otherwise, use a name as a prefix to modify the property .

Struts2 The named object provided

Struts2 standards-of-use Context Conduct OGNL Expression language evaluation ,OGNL The top-level object of is a Map Type instance object Context, Its root object is ValueStack. To visit ValueStack Properties in , It can be done by :${bar}
Struts2 Provides some named objects , But these objects are not Stack Context The root object of , They just exist in Stack Context in , So to access these objects, you need to use # Prefix to indicate .
(1).parameters object : Used to access the Http Request parameters , Such as :#parameters.foo,  #parameters['foo']. Used to return the call HttpServletRequest Of getParameter("foo") The return value of .
(2).request object : Used to access the HttpServletRequest Properties of . Such as :#request['foo'],  #request.foo. Used to return the call HttpServletRequest Of getAttribute("foot") The return value of .
(3).session object : Used to access the HttpSession Properties of . Such as :#session['foo'],  #session.foo. Used to return the call HttpSession Of getAttribute("foo") The return value of .
(4).application object : Used to access the ServletContext Properties of . Such as :#application['foo'],  #application.foo. Used to return the call ServletContext Of getAttribute("foo") The return value of .
(5).attr object : This object will in turn search for the following objects :PageContext,  HttpServletRequest,  HttpSession,  ServletContext Properties in .

When the system is created Action After the instance , The Action The instance has been saved to ValueStack in , So there's no need to write # You can directly access Action attribute .

Stack Context Objects in the :

Stack Context---ValueStack( Root object )
                        ---parameters( Name the object )
                        ---request( Name the object )
                        ---session( Name the object )
                        ---application( Name the object )
                        ---attr( Name the object )

visit Stack Context You can omit the object name when you select the attribute of the root object , When accessing other named objects, you need to add... Before the object name # Prefix .

JSTL label

EL expression
It's easy to use , No use JSP Write statements that support tags in , It can be used directly . 
${hello}        Equate to     <%= request.getAttribute("hello") %> 
EL The expression also supports four operations , Size comparison ( return true or false), Empty validation (${empty hello}, return true or false), Also support such as ${group.name}   ${map.key} Returns the corresponding value

JSTL Core library (c label ) 
First , You have to put jar Bag leads in , Here's the problem , If it is struts1.3.10 Words , Its own jstl Bag is 1.0 edition , and 1.0 Version of jstl stay 2.0 Of JSP in , There will be problems. . So the next one 1.1 Previous versions of jstl package , The download address is here :http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi 
then , stay JSP Add a statement that supports tags to the ,<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
⑴,c:out It's just output  
<c:out value="${hello}"/>    Equate to     ${hello} 
<c:out value="${abc}" default="haha"/>       If ${abc} non-existent , So give me an initial value haha 
     
String HTML = "<font color='red'> welcome to beijing </font>"; 
request.setAttribute("bj", HTML);     action Send out the value in

<c:out value="${bj}" escapeXml="false">   escapeXml: Whether to break away from XML grammar , No. , Just follow HTML Syntax parsing , Output results : welcome to beijing  
⑵,c:set , c:remove 
c:set Equal to the page Level ,setAttribute A value , Use... On the current page c:out Can receive , for example : 
<c:set value="beckham" var="player"/> 
c:remove That is to change an attribute value from the current page Delete from the list , for example : 
<c:remove var="player"/> 
⑶,c:if    It's a conditional branch statement , Can only express if, No, else 
<c:if test="${1 < 2}" var="result"> 
    1 < 2<br> 
    ${result }<br> 
   </c:if> 
Output results : 
1 < 2 
true

⑷,c:choose,c:when,c:otherwise, It's also a conditional branch statement , But this time it can form if...else A combination of ^_^   
c:when Namely if,c:otherwise Namely else, It should be noted that c:when,c:otherwise Must be written in c:choose Inside the label  
<c:choose> 
    <c:when test="${v1 < v2}"> 
     v1 < v2<br> 
   </c:when> 
    <c:otherwise> 
     v1 > v2<br> 
   </c:otherwise> 
</c:choose>

⑸,c:forEach, It's a cycle  
      <c:forEach items="${userList}" var="user">   ← there var It's equivalent to putting an object Attribute When it comes out , The name given to this object ( That is, the reference to this object ), Now you can use this reference to display the properties of the object  
       <tr> 
        <td>${user.username }</td> 
        <td>${user.age }</td> 
        <td>${user.group.name }</td> 
       </tr> 
      </c:forEach> 
The output is as follows  
name age group 
Contestants  0 20 AC milan 
Contestants  1 21 AC milan 
Contestants  2 22 AC milan 
Contestants  3 23 AC milan 
Contestants  4 24 AC milan

■ c:forEach Medium varStatus attribute ,varStatus You can record some information about this cycle , For example, how many times does it cycle now , Namely vs.count , Here's an example , When the loop goes on an even number of times , Change the background color to yellow  
<c:forEach items="${userList}" varStatus="vs" var="user"> 
       <c:choose> 
        <c:when test="${vs.count % 2 == 0}"> ← If it's an even number of times , The background color turns yellow  
         <tr bgcolor="yellow"> 
        </c:when> 
        <c:otherwise>     ← If the steps are even , The background color doesn't change  
         <tr> 
        </c:otherwise> 
       </c:choose> 
          <td>${user.username }</td> 
          <td>${user.age }</td> 
          <td>${user.group.name }</td> 
         </tr> 
      </c:forEach> 
The output is as follows  
name age group 
Contestants  0 20 AC milan 
Contestants  1 21 AC milan 
Contestants  2 22 AC milan 
Contestants  3 23 AC milan 
Contestants  4 24 AC milan

■ c:forEach Medium begin , end, step attribute ,begin: Where to start the cycle ,end: Where to end ,step: Step length of each cycle  
■ It can be used c:forEach The only thing to accept is List also Map, Accept Map You can also take them out separately when you need them key and value Value , Example : 
<c:forEach items="${map}" var="v" > 
     ${v.key } = ${v.value }<br> 
</c:forEach> 
⑹,c:forTokens For iterations of delimited strings ,delims Property is used to set the type of the separator ( It's a comma , Slashes ), Look at examples : 
action Send value in  
request.setAttribute("forTokens","1,2,3,4,5"); 
request.setAttribute("forTokens2","/oracle/db/9.2.0"); 
JSP Received values in  
<c:forTokens items="${forTokens}" delims="," var="v">    ← The separator is a comma  
    ${v }<br> 
</c:forTokens> 
   <p> 
<c:forTokens items="${forTokens2}" delims="/" var="v">   ← The separator is a slash  
    ${v }<br> 
</c:forTokens> 
give the result as follows : 





oracle 
db 
9.2.0

⑺,c:catch, Capture exception , amount to java The grammatical try......catch, It can be used c:catch Of var Property to print exception information  
<c:catch var="v"> 
     <% 
      Integer.parseInt("heihei");        // Here's a mistake , Convert a string to int Format , Of course it's wrong  
     %> 
</c:catch> 
${v }

Output results : 
java.lang.NumberFormatException: For input string: "heihei" 
⑻,c:import, amount to include, Introduce another page into the current page , Usage is as follows : 
<c:import url="http://localhost:8080/struts_JSTL_EL/"></c:import>

⑼,c:redirect Redirect  
<c:redirect context="/struts_JSTL_EL" url="/index.jsp"></c:redirect> 
result : The current page will be redirected to  http://localhost:8080/struts_JSTL_EL/index.jsp Go to , That's it

Format library (fmt) 
stay JSP Add a statement that supports tags to the ,<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
※: First post a paragraph in action The transmission value in , The following formatting time and numbers will be used  
request.setAttribute("today",new Date()); 
request.setAttribute("number",1234566.678); 
request.setAttribute("percent", 0.12345); 
⑴, Format time ,fmt:formatDate 
<fmt:formatDate value="${today}"/><br> 
Output results :2009/04/22 
<fmt:formatDate value="${today}" type="date"/><br> 
Output results :2009/04/22 
<fmt:formatDate value="${today}" type="time"/><br> 
Output results :18:24:21 
<fmt:formatDate value="${today}" type="both"/><br> 
Output results :2009/04/22 18:24:21 
⑵, Formatting Numbers ,fmt:formatNumber 
<fmt:formatNumber value="${number}"/><br> 
Output results :1,234,566.678   //type The default is numbers separated by commas  
<fmt:formatNumber value="${number}" pattern="###,###.##"/><br> 
Output results :1,234,566.68    //pattern and struts The same as in China  
<fmt:formatNumber value="${number}" pattern="###,###.0000"/><br> 
Output results :1,234,566.6780 // After the decimal point is not enough 4 Zero for each bit  
<fmt:formatNumber value="${number}" type="currency" currencySymbol="$"/><br> 
Output results :1,234,566.68    //type Set it to currency ,currencySymbol Set the dollar sign  
<fmt:formatNumber value="${percent}" type="percent"/><br> 
Output results :12%             //type Set to percentage  
<fmt:formatNumber value="${percent}" type="percent" maxFractionDigits="2" minFractionDigits="2"/><br> 
Output results :12.34%          //type Set to percentage , And the maximum and minimum after the decimal point are left 2 position

Jsp Custom tag

Jsp Page through xml The syntax format is called , When JSP The engine will be JSP Translate the page into Servlet when , Just translate these calls into executing the corresponding Java Code

Example : Realize the output of a specified range of random numbers on the page

label :<ct:random min="1" max="100"/>

First step : Write tag classes :

There are many ways to implement tag classes , The easiest way is from javax.servlet.jsp.tagext.TagSupport Class inheritance

java Code :

package com.test.mytag

public calss RandomTag extends TagSupport{

private int min=0;// Properties in Tags min, The default value is 0

private int max=Integer.MAX_VALUE;// Properties in Tags max, The default value is int Maximum of type

public void setMin(int min){

this.min=min;

}

public void setMax(int max){

this.max=max

}

public int doStartTag()throws JspException{

try{

Random random=new Random();

int result=min+random.nextInt(max-min);

pageContext.getOut().write(String.valueOf(result));

// Output random number ,pageContext A variable is in TagSupport A class variable defined in a class , The variable is passed through the TagSupport Class

//setPageContext Method assignment ,setPageContext The method is in Tag Defined in interface ,

// and TagSupport Realized Tag Interface setPageContet Method ,

//Servlet The container is calling doStartTag Method is called first setPageContext Method

}catch(IOException e){

System.out.println("error!");

}

//TagSupport Class doStartTag Method returns by default SKIP_BODY, Indicates that the custom label body is ignored

return super.doStartTag();

}

}

The second step :

Write tag library descriptor file (TLD file )

To make custom tags work , Must be in TLD The tag is configured in the file :

stay WEB-INF Create one in the directory jsp-taglib.tld file , The contents are as follows :

<?xml version="1.0" encoding="UTF-8"?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2.0.xsd" version="2.0">

<description> Custom tag library </descrption>

<tlib-version>1.1</tlib-version>

<short-name>ct</short-name><!-- Tag prefix -->

<uri>http://www.javaeye.net</uri>

<taglib>

<tag>

<desrption> Generates a random number in a specified range </desrption>

<name>random</name>

<tag-class>com.test.mytag.RandomTag</tag-class>

<body-content>empty</body-content><!-- Indicates that label body type does not support label body -->

<attribute>

<name>min</name>

<required>false</required>

<rtexprvalue>false</rtexprvalue>

</attribute>

<attribute>

<name>max</name>

<required>false</required>

<rtexprvalue>false</rtexprvalue>

</attribute>

</tag>

</taglib>

Ognl_JSTL_ Learn more about notes

  1. js Learning notes :webpack Basic introduction ( One )

    I've heard of it before webpack, I'd like to have a formal contact with you today , Follow first webpack The official user's Guide to go : Here is : How to install webpack How to use webpack How to use loader How to use webpack The developer of the ...

  2. PHP- Custom template - Learning notes

    1.  Start This few days , After reading teacher Li Yanhui's <PHP Second quarter video > Medium “ chapter 7: establish TPL Custom template ”, Make a study note , By drawing the architecture diagram .UML Class diagrams and mind maps , To better understand . 2.  Overall architecture ...

  3. PHP- Member login and registration example analysis - Learning notes

    1. Start Recently I began to learn from Mr. Li Yanhui <PHP Second quarter video > Medium “ chapter 5: Use OOP Registered members ”, Make a study note , By drawing the basic page flow and UML Class diagram , To better understand . 2. Basic page flow 3. adopt UM ...

  4. 2014 Summer vacation c# A list of study notes

    2014 Summer vacation c# Learning notes One .C# Programming based 1. c# Enumeration of programming basics 2. c# Function variable parameters of programming basis 3. c# String basis of programming basis 4. c# String function of programming basis 5.c# Fundamentals of programming ref.ou ...

  5. JAVA GUI Programming learning notes Directory

    2014 Summer vacation JAVA GUI Programming learning notes Directory 1.JAVA And GUI Programming overview 2.JAVA And GUI Programming layout 3.JAVA And GUI Programming Frame window 4.JAVA And GUI Programming event monitoring mechanism 5.JAVA And ...

  6. seaJs Learning notes 2 – seaJs The use of group building library

    Original address :seaJs Learning notes 2 – seaJs The use of group building library I don't think it's enough to learn new things , Being able to use just means that you understand , I understand , Two doesn't mean you're deep , The essence of it . So continuous learning will be endless . most ...

  7. CSS Learning notes

    CSS Learning notes 2016 year 12 month 15 Daily arrangement CSS Basics Chapter1 stay console Input escape(" Song style ") ENTER Will appear unicode code Show "%u ...

  8. HTML Learning notes

    HTML Learning notes 2016 year 12 month 15 Daily arrangement Chapter1 URL(scheme://host.domain:port/path/filename) scheme: Define the type of Internet Service , The common one is ...

  9. DirectX Graphics Infrastructure(DXGI): Best practices Learning notes

    The article I'm going to learn today is relatively early , In about DX11 The times have been written , At that time, the dragon book 11 It's a scribble version , Didn't pay attention to this article , Now look 12, I think it's an article I can't jump over , The address is as follows : https://msdn.micro ...

Random recommendation

  1. spin.js

    $ajax Submit , How and where to load the chrysanthemum : $.ajax({ type: "get", url: "http://www.xxx.com/test.html", b ...

  2. 【 turn 】Controllers and Routers in ASP.NET MVC 3

    Controllers and Routers in ASP.NET MVC 3 ambilykk, 3 May 2011 CPOL 4.79 (23 votes) Rate: vote 1vote ...

  3. Autodesk hackathon Technical references

    Autodesk The first hacking Marathon (hackathon ) Will be in 6 month 14 It was held in Shanghai on the th , At this event , The recommended technologies are ReCap 360 photo Photo modeling technology and Autodesk 360 viewer Universal ...

  4. Step by step Python3( One )-- First time to know Python

    One .Python origin                

  5. [Effective JavaScript note ] The first 44 strip : Use null Prototypes to prevent prototypes from polluting

    The first 43 What is mentioned in the article is used Object A direct example of , It can't be completely avoided ,Object.prototype Object modification , Prototype pollution caused by . One of the easiest ways to prevent prototype pollution is not to use prototypes . stay ES5 Before , There is no standard way to create ...

  6. hdu 4217 Data Structure?/treap

    Original link :http://acm.hdu.edu.cn/showproblem.php?pid=4217 It can be written in line tree , Be more efficient . This question used to be c Written language treap The water has passed .. Now I'm in touch with c++ Rewrite it ...

  7. hdu 1546 Idiomatic Phrases Game

    http://acm.hdu.edu.cn/showproblem.php?pid=1546 #include <cstdio> #include <iostream> #in ...

  8. Communication protocol :HTTP、TCP、UDP

    TCP   HTTP   UDP: It's all communication protocols , That is, the rules of communication , Only both sides follow this rule “ speak ”, The other party can understand or serve . TCP   HTTP   UDP The relationship among the three : TCP/IP It's a protocol group ...

  9. Code optimization and organization in Javascript / jQuery

    This article is a combined effort of Innofied Javascript developers Puja Deora and Subhajit Ghosh) W ...

  10. Objective-C How to use object sets to learn one of the series

    This chapter describes how to use  Foundation  Frame usage  Objective-C  Dealing with arrays and dictionaries . Content of this chapter : ●   Use  NSArray  And  NSMutableArray  Create array ●   Add... To the array . Delete and ...