Kos yoog siv Struts 2

Struts 2 exception handling

Tshwj siv Struts 2 – Cia peb revisit

Txheej txheem cej luam:

Ntxiv li yog ib feem ntawm tag nrho cov txheej txheem txheej txheem ntawm txoj kev software thiab cov ntaub ntawv kho mob. Tab sis yog feem coob ntawm cov exceptions no qhia thiab chaw nyob muaj tej zaum yuav tshwm sim uas yog unidentified thiab tsis txhais lus. txoj hlab ntsha 2 npaj kom muaj kev paub tseeb, txhais lus thiab chaw nyob xws li kos. Qhov zoo tshaj plaws txog kov nrog Struts 2 Yog lub peev xwm mus kov cov txheej txheem no embedded nyob rau hauv lub framework thiab yuav tsis muaj ntxiv. txoj hlab ntsha 2 derives ntau nws cov peevxwm ntawm tus qauv saib Controller (MVC) framework thiab muaj nws cov architectural nta ob yam uas muaj tseeb txoj kev taw qhia thiab chaw nyob exceptions. Tus architecture ntawm Struts 2 yog modular thiab module los sis muaj tej txoj kev sib tham nrog lwm modules. Tshwj thaum muaj kev sib tshuam zoo li no yuav qhia tau thiab chaw nyob.


Nyob rau cov tshooj no, Peb yuav tshawb me ntsis txog Struts 2 framework thiab ces mloog zoo rau qhov kov qhov ncauj. Peb kuj yuav xyuas tau ib qho qauv ntawm daim ntawv thov nyiaj poob haujlwm no.

txoj hlab ntsha 2 thiab MVC Framework

Thaum lub Struts 2 moj khaum yog ib qho extent raws li cov MVC framework, Muaj tej yam sib txawv hauv lub Struts 2 moj khaum. Peb saib cov zej zog thiab qhov txawv ntawm tus ob frameworks.

Cov Koog Povthawj

  • Ob Struts thiab MVC frameworks muaj components uas muaj meej meej tseeb defined cwj pwm thiab lub luag hauj lwm. Piv txwv, nyob rau hauv cov ntshav, hom qauv, Saib thiab Controller tswj cov ntaub ntawv ua hauj lwm logic, Uas qhia cov ntaub ntawv thiab lwm cov khoom siv hauv cov neeg siv interface raws li thov los ntawm tus neeg siv thiab kuj ua interface ntawm tus qauv thiab Viewer components feem. Piv, Txiv hmab txiv ntoo 2, Muaj ntau ntau yam xws li Controller, Yam thiab Kev Cuam Tshuam uas ua lawv lub luag hauj lwm rau ib yam, ua ntej.
  • Ob struts 2 thiab MVC framework yog zoo tagnrho rau cov uas muaj website. Ob txoj kev loj hlob yooj yim.

Qhov txawv

Qhov tseem ceeb yog Struts 2 pib ntawm daim ntawv ntawm Struts 1 yog inheriting lub moj khaum ntawm MVC thiab mus tu ib massively zoo tuaj version hauv Struts 2. MVC muab lub foundation thiab Struts 2 Ntxiv tej yam xws li tagnrho kev them nyiaj yug thiab POJO ntaub ntawv.







Cov yam ntxwv yog dab tsi?

Lub ntsiab nta ntawm Struts 2 piav qhia hauv qab no:

  • Dawb Java Object (POJ NIAM) cov ntaub ntawv thiab POJO es

Yuav tau txais daim ntawv inputs muab los ntawm ib tug neeg siv los ntawm ib tug neeg siv web-raws li kev cuam tshuam, txoj hlab ntsha 2 siv poJJO ntaub ntawv thiab yuav ua raws li tus inputs, txoj hlab ntsha 2 siv poJJO es.

  • Kev txhawb

Struts2 muaj khees me ntsis lawm tsab ntawv tag nrho rau cov neeg uas nws txuag lub dag zog los ntawm developers nyob sau ntawv code los tsim cov ntaub ntawv.

  • AJAX yug

Struts2 enables developers siv lub peevxwm ntawm AJAX tsim sai thiab sib tham sib tham sib tham.

  • yooj yim

Struts2 pub yooj yim kev koom nrog lwm frameworks xws li caij nplooj ntoos hlav, Vuas thiab SiteMesh.

  • Yooj yim rau hloov tags

Developers yuav yooj yim hloov tus tags hauv Struts 2 nrog siv cov Freemarker templates.

  • Tsawg dua configuration

Nta tuaj configured los ntawm default kom developers los yog cov neeg khiav dej num tsim los yog cov neeg khiav dej num tsis tau siv sij hawm thiab dag zog nyob rau hauv configuration.

  • Khaws tseg kov

Struts2 enables developers paub hitherto pom exceptions thiab cim ntawv ceeb toom rau cov neeg siv. Exceptions yuav tswj ob lub zos thiab tas mas muaj kev ruaj ntseg configurations.

Brief architecture – Struts 2

Raws li tau teev lawm, txoj hlab ntsha 2 muaj ib tug zoo defined, Architecture architecture tias lub luag hauj lwm ntawm txhua tus architecture. Tshwj tsis xeeb ntxiv yuav tshwm sim thaum twg thiab lawv yuav muab qhov chaw nyob. Muab hauv qab no yog ib piav txog lub voj ntawm kev ua ub no tau los ntawm txhua tus neeg nyob rau hauv lub framework.

  1. Tus neeg siv xa thov ib qhov chaw muab kev pab los ntawm ib lub web kuas interface. Cov chaw muab kev pab yuav yog ib nplooj ntawv.
  2. Kev thov rov los xyuas dua los ntawm FilterDispatcher tivthaiv thiab ib yam tsim nyog, lwm tus, xaiv.
  3. Interceptors siv tau validation logic.
  4. Cov kev xaiv ua haujlwm ua ntej lub lag luam thov.
  5. Interceptors ua ncej txheej txheem tom qab cov haujlwm los ntawm cov kev ua hauj lwm yog tiav, Yog hais tias yuav tsum tau.
  6. Qhov no yog ib qho kev xaiv. Yog hais tias muaj ib qho kos, tshwj cov txheej txheem kev cuam tshuam nws.
  7. Qhov txheeb xyuas tau los yog cov chaw muab kev pab yuav muab xa mus rau tus neeg siv los ntawm cov qauv saib.

Exception tuav hauv Struts 2 – Qhia Cov Txheej Txheem

Nrog Struts 2, tshwj xeeb kov yog yooj yim thiab tej. Tshwj cov peevxwm tuaj configured los ntawm default thiab yuav tsis muaj dab tsi ntxiv. Qhov kev cuam tshuam kev cuam tshuam yog configured kom paub ntxiv thiab redirect cov neeg siv los corresponding yuam kev nplooj ntawv yuam kev. Muab hauv qab no yog ib co ntawm kov cov peevxwm uas Struts 2:

  • Struts muaj kos handling los ntawm nws cov com.opensymony.xwork.interceptor.interceptor.exceptionNapping interceptorceptor uas yog pre-packed.
  • Tshwj tsis pub leej twg kov ob lub zos thiab hauv zos.
  • Lub zos tuav txhais tau tias defining tshwj xeeb yuam kev rau cov tshwj xeeb ntxiv kom cov neeg uas yog redirected rau cov nplooj ntawv yuam kev thaum tshwj xeeb.
  • Nyob rau hauv lub ntiaj teb no tuav, Tshwj tias ntiaj teb no yuav muab teev rau tag nrho cov kev ua. Piv txwv, qhia tag nrho NullPointerception ntxiv ntawm hom tib yam, tus <Ntiaj teb no-exception-mappings…> sab hauv <pob…> sawv daws yuav tau ntxiv.



Configuration

Cov kauj ruam rau configure Struts 2 muab rau hauv qab no. Nws yog assumed koj twb muaj JDK (5+), Tomcat thiab Eclipse ntsia hauv lub tshuab.

Teeb lub Java kev loj hlob Java (JDK)

  1. Download qhov tseeb JDK ntawm Oracle lub website.
  2. Txheej PATH thiab JAVA_HOME muaj variables mus saib tau tus thawj coj uas muaj javac thiab java.

Setup Apache Tomcat

  1. Download qhov tseeb version ntawm Tomcat los http://tomcat.apache.org/.
  2. Unpack lub binary tis rau ib lub zos disk thiab tsim cov CATALINA_HOME ib puag ncig uas ntsiab lus rau cov chaw khiav hauj lwm.
  3. Execute lub Tomcat los ntawm ob-clicking startup.startup.batt.

Setup Struts 2 tsev qiv ntawv hauv tsev qiv ntawv

  1. Download qhov tseeb version ntawm Struts 2 ntawm http://struts.apache.org/download.cgi.
  2. Extract cov ntaub ntawv rau lub zos disk thiab muab cov CLASSPATH uas zoo zoo.

Ceeb toom: Koj yuav download qhov tseeb versions ntawm lub software ntawm tej OS thiab ces siv lub tswv yim Eclipse IDE rau koj convenience.

Piv txwv li kov tau tuav daim ntawv thov

Struts muaj ib tug mechanism npaum li cas rau tuav exceptions. Nws muab ib qho kev cuam tshuam kev cuam tshuam hu ua 'kos', uas tswj tag nrho cov kev ua hauj lwm. Nyob rau hauv qhov piv txwv no peb yuav sau ntawv rau tag nrho cov components thiab yuam kev rau tes tej yooj yim exceptions. Yuam kev nplooj ntawv yuam kev yog ib feem tseem ceeb ntawm struts kov, raws li developers yuav ua tau tej nplooj ntawv yuam kev thiab redirect li ib tug yuav tsum tau.

Cia peb mus xyuas ntau hom kev sib txawv ib los ntawm ib tug. Peb yuav tsim peb jsp ntaub ntawv rau yuav tsaws nplooj ntawv, zoo thiab yuam kev. Peb yuav tau muaj ib yam kev tes hauj lwm thiab struts.xml configuration ntaub ntawv.

Qhov no yog cov index phab rau kev soj ntsuam los ntawm cov neeg siv. Nws yuav ntsoov thov kom muab cov hoob kawm.

Qhia 1: Qhov no yog tus yuav tsaws nplooj ntawv (Performance Index. jsp)

<%@ sab lus =”java” contentType =”ntawv nyeem/html; charset =ISO-8859-1″

pageEncoding =”ISO-8859-1″%>

<%@ taglib prefix=”s” kua txiv ntoo=”/nruab nrab-tags”%>

<!DOCTYPE html PUBLIC “-//W3C / / DTD HTML 4.01 Hauv / / EN”

“http://www.w3.org/TR/html4/loose.dtd”>

<html>

<lub taub hau>

<npe>Struts Excp Demo</npe>

</lub taub hau>

<lub cev>

<h1>Qhov no yog Struts ntxiv piv txwv</h1>

<daim ntawv =”kev sib deev”>

<ntaus cim rau =”empname”>Tus neeg ua hauj lwm lub npe:</lo cim><br />

<ntaus cim rau =”emprole”>Neeg ua hauj lwm thov pab:</lo cim><br />

<input yam =”ntawv nyeem” lub npe =”empname”/>

<input yam =”ntawv nyeem” lub npe =”emprole”/>

<input yam =”xa” tus nqi =”Xa”/>

</daim ntawv>

</lub cev>

</html>

Tom qab cov nplooj ntawv zoo yuav tsum tso tawm kom pom thaum lub input yog txheej txheem los ntawm cov hoob kawm. Yog hais tias muaj tej yam tshwj xeeb, ces nws yuav redirect rau lwm nplooj ntawv li configured hauv lub struts.xml.

Qhia 2: Qhov no yog cov nplooj ntawv zoo (StrutsExpDemo.jsp)

<%@ page contentype=”ntawv nyeem/html; charset = UTF-8″ %>

<%@ taglib prefix=”s” kua txiv ntoo=”/nruab nrab-tags” %>

<html>

<lub taub hau>

<npe>Struts Excp Demo – Qhov no yog cov nplooj ntawv zoo</npe>

</lub taub hau>

<lub cev>

Txais tos rau Struts kos Demo <s:tus nqi tam sim no thiab cov cuab yeej ntawm tus kheej.”empname”/>

<s:tus nqi tam sim no thiab cov cuab yeej ntawm tus kheej.”emprole”/>

</lub cev>

</html>

Tom qab cov neeg muas zaub yuam kev thiab nws yuav raug tso tawm thaum twg tshwm sim hauv tus txheej txheem txheej txheem. Nyob rau hauv peb rooj plaub nws yuav tsum redirected rau nplooj ntawv vim null pointer kos.







Qhia 3: Qhov no yog cov neeg muas zaub yuam kev (yuam kev.jsp.jsp)

<%@ sab lus =”java” contentType =”ntawv nyeem/html; charset =ISO-8859-1″

pageEncoding =”ISO-8859-1″%>

<%@ taglib prefix=”s” kua txiv ntoo=”/nruab nrab-tags”%>

<!DOCTYPE html PUBLIC “-//W3C / / DTD HTML 4.01 Hauv / / EN”

“http://www.w3.org/TR/html4/loose.dtd”>

<html>

<lub taub hau>

<npe>Struts Excp Demo – Qhov no yog qhov yuam kev</npe>

</lub taub hau>

<lub cev>

Qhov no yog kev lis kev cai yuam kev – Zaub yuam kev no

</lub cev>

</html>

Qhov no yog lub ntsiab tseem ceeb chav kawm ntawv uas yog tus txheej txheem ntawm tag nrho cov kev thov los ntawm pem hauv ntej xaus. Tus execute() txoj kev no hu ua txoj kev. Thiab zoo lossis yuam kev yog xa rov qab ua ib yam mob. Nyob rau hauv peb rooj plaub no nws yuav muab pov tseg ib qho ntxiv.

Qhia 4: Qhov no yog qhov ua tau tes hauj lwm (StrutsExpDemoction.java)

pob.com.techalpine.strutsexcdemo;

// Qhov no yog kev txhawb nqa ib yam li kev kawm tau zoo, yuam kev, tsis muaj

import.com opensymony.xwork2.xwork2.ActionSupport;

Pej xeem hoob kawm StrutsExpemoction extends Actionsupport{

txheej kauj ruam;

kauj ruam qhwv;

pej xeem txoj hlua execute(){

Hlua txaus = null;

Hlua erole = null;

// Tsim yuam kos

npau taws = txhawb nqa.substring(0);

yooj yim = erole.substring(1);

xa rov qab mus kawm;

}

Pej xeem string tauEmpname() {

npaj siab rov qab los;

}

pej xeem void setEmpname(hlua kauj ruam) {

qhov no..empname = empname;

}

Pej xeem txoj hlua rau pej xeem() {

rov qab mus emprole;

}

pej xeem tsis txhob setEmprole(qoob loo) {

qhov no..emprole = emprole;

}

}

Qhov no yog qhov configuration ntaub ntawv uas tag nrho cov mappings yog txhais. Zoo nws yog redirected rau cov nplooj ntawv thiab rau qhov yuam kev yog redirected rau ib phab yuam kev. Qhov no yog qhov kev tswj hwm rau tag nrho cov ntaub ntawv.

Qhia 5: Qhov no yog qhov configuration ntaub ntawv (xmlwv)

<?xml version =”1.0″ encoding =”UTF-8″?>

<!DOCTYPE struts pej xeem

“-//Apache Software Foundation//DTD Struts Configuration 2.0/EN”

“http://struts.apache.org/dtds/struts-2.0.dtd”>

<ntxhov siab>

<xeeb npe=”nruab nrab.devode” tus nqi =”tseeb” />

<pob thoob lub npe=”kev sib deev” extends= extends = extends=”ruaj ntseg”>

<npe hu ua npe=”kev sib deev”

hoob =”com.com techalpine.strutsexcdemo.StrutsExpDemoctionA”

txujci =”txim tuag”>

<tshwj-mapping exception=”java.lang.NullPointerception”

tshwm.”yuam kev” />

<tshwmsim npe ua phem rau lub npe=”tav”>/StrutsExpDemo.jsp</tshwm>

<tshwmsim npe ua phem rau lub npe=”yuam kev”>/yuam kev.jsp.jsp</tshwm>

</nkaus>

</pob>

</ntxhov siab>








Tam sim no peb tau tsim txhua tus components. Li ntawd, tam sim no peb yuav tsum ua ib daim ntawv WAR thiab deploy nws nyob rau hauv tomcat web pab. Tom qab ua tau hauj lwm zoo deployment, Qhib lub qhov txuas rau browser thiab koj yuav tau txais cov nplooj ntawv Index.

http://localhost:8080/StrutsExpDemo/Index.jsp

Tam sim no, sau tej ntaub ntawv thiab nias rau lub 'Xaus' khawm. Nws yuav tsum redirected rau cov nplooj ntawv yuam kev thiab cov lus nram qab no yuav muab tso tawm.

Tso zis: Qhov no yog kev lis kev cai yuam kev – Zaub yuam kev no

Struts output

Duab 1: Tso zis

Xaus

Struts2 ua rau kov yooj yim vim yog lub zos thiab lub ntiaj teb no teev. Lub ntiaj teb no tuav ntxiv txuag tau ntau lub sij hawm thiab dag zog thiab nws contributes zoo neeg siv kev. Nyob rau hauv no tutorial peb tau tham txog tag nrho cov kev sib nrauj ntawm Struts kos thiab seb nws tes kos. Cov qauv qauv siv no kuj yog ib qho kev pab cuam kom kawm thiab siv nws txoj kev ua thiab tiag lub neej tiag.

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share