/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Java format
Fra : Mette Stephansen


Dato : 27-06-05 11:29

Hej

Jeg er ny i Java verdenen og måske er det et extremt nemt spørgsmål
..... men here goes:

Jeg har et felt (integer), som skal skrives i en JSP side. Feltet
indeholder 0, og skal derfor skrives som en space. Andre tal skal
vises i formatet n.nnn.nnn hvor de foranstillede blanke er fjernet.

(Jeg ved godt at jeg kan if'e mig ud af det - men der MÅ være en
metode, som i andre programmerings sprog, hvor man anvender masker i
output)

Jeg forsøger at finde et format, der kan gøre det, men fik enten 0
hits eller 16 mio

Java versionen er 1.4.2

Er der nogen, der kan henvise lidt læsestof eller en løsning?

mvh
Mette

 
 
Søren Berg Glasius (27-06-2005)
Kommentar
Fra : Søren Berg Glasius


Dato : 27-06-05 12:06

Hej Mette

velkommen i Java's forunderlige verden.

> Jeg har et felt (integer), som skal skrives i en JSP side. Feltet
> indeholder 0, og skal derfor skrives som en space. Andre tal skal
> vises i formatet n.nnn.nnn hvor de foranstillede blanke er fjernet.

Jeg tror at du skal kikke noget mere på java.text.NumberFormat

- har du brug for mere information, så sig til, ellers vil jeg overlade
det til dig at finde ud af, hvordan det virker

Mvh
Søren

Ukendt (27-06-2005)
Kommentar
Fra : Ukendt


Dato : 27-06-05 17:21

Hej igen

Jeg kan ikke lige se NumberFormat, hvordan man omsætter et 0 -> en blank?
Er det bare mig, der ikke kan læse ? Selvf. kan jeg if'e mig igennem alle
17 felter, men der MÅ være en nemmere, bedre og iøvrigt indbygget
funktion/metode, der kan bruges, ikk?

Grrrr ... som gammel dinosaur programmør (cobol mm.) er mange ting urimeligt
besværlige i Java Der skal ledes, ledes og ledes - end ikke de erfarne
rotter hos os kan svare på den slags .... gad vide om man nogensinde blir
go' ????

mvh
Mette

"Søren Berg Glasius" <soeren@glasius.dk> skrev i en meddelelse
news:42bfdd09$0$174$edfadb0f@dread11.news.tele.dk...
> Hej Mette
>
> velkommen i Java's forunderlige verden.
>
> > Jeg har et felt (integer), som skal skrives i en JSP side. Feltet
> > indeholder 0, og skal derfor skrives som en space. Andre tal skal
> > vises i formatet n.nnn.nnn hvor de foranstillede blanke er fjernet.
>
> Jeg tror at du skal kikke noget mere på java.text.NumberFormat
>
> - har du brug for mere information, så sig til, ellers vil jeg overlade
> det til dig at finde ud af, hvordan det virker
>
> Mvh
> Søren



torben (27-06-2005)
Kommentar
Fra : torben


Dato : 27-06-05 19:42

>
> Jeg kan ikke lige se NumberFormat, hvordan man omsætter et 0 -> en blank?
> Er det bare mig, der ikke kan læse ? Selvf. kan jeg if'e mig igennem alle
> 17 felter, men der MÅ være en nemmere, bedre og iøvrigt indbygget
> funktion/metode, der kan bruges, ikk?

Det er også bedre at kigge på forklaringen til DecimalFormat.
linket er
http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

Der er både et eksempel, samt en tabel over symbolers betydning.


>
> Grrrr ... som gammel dinosaur programmør (cobol mm.) er mange ting urimeligt
> besværlige i Java Der skal ledes, ledes og ledes - end ikke de erfarne
> rotter hos os kan svare på den slags .... gad vide om man nogensinde blir
> go' ????
>

Sikkert. Jeg havde det på samme måde som dig til at begynde med. Java
syntaksen er et meget simpel, men der er ufattelig mange klasser og
interfaces. Hvilket gør det svært at få et oveblik.

Omvendt når man først har fået et overblik over hvad der findes, kan man
lave advanceret applikationer meget hurtigere end i Cobol o.lign.

Torben

Ukendt (27-06-2005)
Kommentar
Fra : Ukendt


Dato : 27-06-05 20:05

Hej igen

Jeg har også været der - og besluttede mig kækt for at formatet #### var
lige det jeg skulle bruge - hvorefter den skriver 0, når jeg kommer med 0
....... så nu har jeg søgt og læst hist & her uden at komme nærmere:

DecimalFormat df = new DecimalFormat (fmt);
df.applyPattern ("####");
System.out.println ("1 int=" + df.format (0));

Det virker skam fint nok, hvis jeg bruger 1, så blir det med de
foranstillede blanke/nuller fjernet.

Men det er lige netop den gamle fra cobol "blank when zero", vi skal bruge
i en web-side, hvor der er et hav af tal - og 90% af dem er nuller, og det
er således kun de tal > 0, man ønsker at se på (og have hrefs fra).

Hjæææælp

mvh
Mette

PS Jeg tror da også at jeg vænner mig til det - men lige nu er det svært at
få overblik og acceptere at en given ting kan udføres på 17 forskellige
måder, afhængigt af udviklerens humør. Jeg synes at programmerne er mere
"personlige (på den negative måde)" end tilsvarende cobol kode, der ikke gir
så mange løsningsmuligheder til samme problem.


"torben" <torben@frojonck.dk> skrev i en meddelelse
news:42c04888$0$18648$14726298@news.sunsite.dk...
> >
> > Jeg kan ikke lige se NumberFormat, hvordan man omsætter et 0 -> en
blank?
> > Er det bare mig, der ikke kan læse ? Selvf. kan jeg if'e mig igennem
alle
> > 17 felter, men der MÅ være en nemmere, bedre og iøvrigt indbygget
> > funktion/metode, der kan bruges, ikk?
>
> Det er også bedre at kigge på forklaringen til DecimalFormat.
> linket er
> http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html
>
> Der er både et eksempel, samt en tabel over symbolers betydning.
>
>
> >
> > Grrrr ... som gammel dinosaur programmør (cobol mm.) er mange ting
urimeligt
> > besværlige i Java Der skal ledes, ledes og ledes - end ikke de
erfarne
> > rotter hos os kan svare på den slags .... gad vide om man nogensinde
blir
> > go' ????
> >
>
> Sikkert. Jeg havde det på samme måde som dig til at begynde med. Java
> syntaksen er et meget simpel, men der er ufattelig mange klasser og
> interfaces. Hvilket gør det svært at få et oveblik.
>
> Omvendt når man først har fået et overblik over hvad der findes, kan man
> lave advanceret applikationer meget hurtigere end i Cobol o.lign.
>
> Torben



torben (27-06-2005)
Kommentar
Fra : torben


Dato : 27-06-05 21:26

>
> Men det er lige netop den gamle fra cobol "blank when zero", vi skal bruge
> i en web-side, hvor der er et hav af tal - og 90% af dem er nuller, og det
> er således kun de tal > 0, man ønsker at se på (og have hrefs fra).
>
> Hjæææælp
>
Hvis det kun er tallet 0, som volder problemer, så kan man vel godt
tillade sig at behandle det som et specialtilfælde.

Der skal vel slet ikke laves referencer (href) ud til celler, hvis værdi
er 0. Så her skal du alligevel undersøge om der for en celle skal laves
en href.

Torben

Ukendt (28-06-2005)
Kommentar
Fra : Ukendt


Dato : 28-06-05 09:58

Hej

Ja, det er kun tallet 0, som gir mig problemer - lige på denne side er der
så hrefs, men det er der ikke en del andre steder, så jeg leder stadig efter
en nem måde at lave den "blank when zero på".

Synes det virker som gråspurve med kanoner, hvis man selv må opfinde den
slags halvlunkent vand .....

Mette

..
"torben" <torben@frojonck.dk> skrev i en meddelelse
news:42c060ba$0$18645$14726298@news.sunsite.dk...
> >
> > Men det er lige netop den gamle fra cobol "blank when zero", vi skal
bruge
> > i en web-side, hvor der er et hav af tal - og 90% af dem er nuller, og
det
> > er således kun de tal > 0, man ønsker at se på (og have hrefs fra).
> >
> > Hjæææælp
> >
> Hvis det kun er tallet 0, som volder problemer, så kan man vel godt
> tillade sig at behandle det som et specialtilfælde.
>
> Der skal vel slet ikke laves referencer (href) ud til celler, hvis værdi
> er 0. Så her skal du alligevel undersøge om der for en celle skal laves
> en href.
>
> Torben



Andreas Plesner Jaco~ (28-06-2005)
Kommentar
Fra : Andreas Plesner Jaco~


Dato : 28-06-05 10:02

On 2005-06-28, Mette Stephansen <mm> wrote:

> Synes det virker som gråspurve med kanoner, hvis man selv må opfinde den
> slags halvlunkent vand .....

Hvis du virkelig mener det, så lad da være med at bruge Java. Jeg kan
virkelig ikke se at det skulle være så uoverkommeligt at lave et
if-statement til at håndtere den ene specielle case.

--
Andreas

Ukendt (28-06-2005)
Kommentar
Fra : Ukendt


Dato : 28-06-05 11:27

Så så ....

Nu er det således at vi SKAL bruge Java, så der er ingen vej uden om, hvad
enten jeg synes bedre om Rexx, c# eller andre sprog. Verden er givet: Java
+ JSP.

Og så er det da at jeg leder efter de formelle måder at gøre tingene på, og
netop IKKE selv opfinde dybe tallekener, fordi det mener jeg dybest set ikke
at jeg er ansat til. Jeg er ansat til at varetage forretningens interesser,
ikke at udvikle småting, der formentlig er lavet 1000 gange før i verden,
hvor sjove og underholdende de end ellers måtte være. Hvem laver i dag selv
moduler til modulus 11/10 check etc? Nej, vel? Det er lavet 1000 gange før
og findes i rigt mål.

Det var og er det jeg søgte også i dette tilfælde....

Nej - det er ikke uoverkommeligt at lave de der 40 if statements, men det er
da ikke specielt elegant (det hedder slavekodning i min verden). Og da der
jo findes de rutiner jeg efterlyser i andre sprog, var jeg (åbenbart) så
naiv at tro, at det selvsagt også fandtes i de moderne sprog!

Mette

"Andreas Plesner Jacobsen" <apj@daarligstil.dk> skrev i en meddelelse
news:slrndc24fm.r2.apj@irq.dk...
> On 2005-06-28, Mette Stephansen <mm> wrote:
>
> > Synes det virker som gråspurve med kanoner, hvis man selv må opfinde den
> > slags halvlunkent vand .....
>
> Hvis du virkelig mener det, så lad da være med at bruge Java. Jeg kan
> virkelig ikke se at det skulle være så uoverkommeligt at lave et
> if-statement til at håndtere den ene specielle case.
>
> --
> Andreas



Andreas Plesner Jaco~ (28-06-2005)
Kommentar
Fra : Andreas Plesner Jaco~


Dato : 28-06-05 12:25

On 2005-06-28, Mette Stephansen <mm> wrote:
>
> Og så er det da at jeg leder efter de formelle måder at gøre tingene på, og
> netop IKKE selv opfinde dybe tallekener, fordi det mener jeg dybest set ikke

Det ændrer ikke på at du stiller dine spørgsmål på en meget ukonstruktiv
måde, du har valgt at poste i et java-forum, at begynde at sige at du er
meget gladere for den måde Cobol gør det er nok ikke den rette
fremgangsmåde.

> Nej - det er ikke uoverkommeligt at lave de der 40 if statements, men det er

40 if statements? Du laver vel kun et og sørger for at implementere det
så det bliver kaldt de steder hvor der er brug for det.

> da ikke specielt elegant (det hedder slavekodning i min verden). Og da der
> jo findes de rutiner jeg efterlyser i andre sprog, var jeg (åbenbart) så
> naiv at tro, at det selvsagt også fandtes i de moderne sprog!

Jeg tror dit største problem er at du griber projektet helt forkert an,
du bruger de design-mønstre du har lært dig fra Cobol-verdenen - og det
er tilsyneladende ikke specielt brugbart i Java-verdenen.
Husk at anderledes ikke nødvendigvis er det samme som god/dårlig.
Prøv at tage et kig på http://java.sun.com/blueprints/patterns/ for at
finde Java design-mønstre.

--
Andreas

Ukendt (28-06-2005)
Kommentar
Fra : Ukendt


Dato : 28-06-05 12:58

Hej igen

Jeg siger ikke at Cobol er bedre, men at jeg forventer at Java da kan mindst
det samme, og så mere til. Iøvrigt kan jeg da sige. at man i C# fint kan
lave ovenstående med et format; nemlig med ####, som jeg også forventede
ville fungere i Java udfra dokumentationen. Så det er skam ikke fordi jeg
ikke har forsøgt mig - eller ledt på nettet.

Det er korrekt at jeg ikke kan anvende de samme patterns, som fra Cobol,
pl*sql mv. Men igen ... jeg havde/har brug for en nem måde at gøre dette
på - og med min nuværende Java viden, vil dette enten være en pre-genereret
metode - eller vhja. 40 dumme if'ere. Jeg har desværre ikke nok kendskab til
Java til selv at kunne flikke metoder sammen hist & her. Desuden bør den
slags metoder velogså adskilles fra den øvrige kode og hældes ned i et
fælles utilities jar til glæde for alle, eller? (Og det aner jeg ikke
hvordan jeg skulle kunne gøre).

Så derfor ledte jeg efter en færdig løsning (som jeg indtil i denne stund
var overbevist om fandtes).

mvh
Mette



"Andreas Plesner Jacobsen" <apj@daarligstil.dk> skrev i en meddelelse
news:slrndc2crm.r2.apj@irq.dk...
> On 2005-06-28, Mette Stephansen <mm> wrote:
> >
> > Og så er det da at jeg leder efter de formelle måder at gøre tingene på,
og
> > netop IKKE selv opfinde dybe tallekener, fordi det mener jeg dybest set
ikke
>
> Det ændrer ikke på at du stiller dine spørgsmål på en meget ukonstruktiv
> måde, du har valgt at poste i et java-forum, at begynde at sige at du er
> meget gladere for den måde Cobol gør det er nok ikke den rette
> fremgangsmåde.
>
> > Nej - det er ikke uoverkommeligt at lave de der 40 if statements, men
det er
>
> 40 if statements? Du laver vel kun et og sørger for at implementere det
> så det bliver kaldt de steder hvor der er brug for det.
>
> > da ikke specielt elegant (det hedder slavekodning i min verden). Og da
der
> > jo findes de rutiner jeg efterlyser i andre sprog, var jeg (åbenbart) så
> > naiv at tro, at det selvsagt også fandtes i de moderne sprog!
>
> Jeg tror dit største problem er at du griber projektet helt forkert an,
> du bruger de design-mønstre du har lært dig fra Cobol-verdenen - og det
> er tilsyneladende ikke specielt brugbart i Java-verdenen.
> Husk at anderledes ikke nødvendigvis er det samme som god/dårlig.
> Prøv at tage et kig på http://java.sun.com/blueprints/patterns/ for at
> finde Java design-mønstre.
>
> --
> Andreas



Martin Husted Hartvi~ (28-06-2005)
Kommentar
Fra : Martin Husted Hartvi~


Dato : 28-06-05 13:00

On Tue, 28 Jun 2005 12:27:20 +0200, Mette Stephansen <mm> wrote:

>
> Og så er det da at jeg leder efter de formelle måder at gøre tingene på,
> og
> netop IKKE selv opfinde dybe tallekener, fordi det mener jeg dybest set
> ikke
> at jeg er ansat til. Jeg er ansat til at varetage forretningens
> interesser,
> ikke at udvikle småting, der formentlig er lavet 1000 gange før i verden,
> hvor sjove og underholdende de end ellers måtte være. Hvem laver i dag
> selv
> moduler til modulus 11/10 check etc? Nej, vel? Det er lavet 1000 gange
> før
> og findes i rigt mål.
>
> Det var og er det jeg søgte også i dette tilfælde....

Jammen, der er sikkert også en del, du har vel forsøgt Google?



>
> Nej - det er ikke uoverkommeligt at lave de der 40 if statements, men
> det er
> da ikke specielt elegant (det hedder slavekodning i min verden). Og da
> der
> jo findes de rutiner jeg efterlyser i andre sprog, var jeg (åbenbart) så
> naiv at tro, at det selvsagt også fandtes i de moderne sprog!
>
> Mette


Hvorfor laver du ikke bare et taglib?

Jeg har et currency eksempel, du kan jo bygge videre på det:

---------------

public class CurrencyTag extends TagSupport
{
protected String name = null;
protected String property = null;
protected String scope = null;

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public String getProperty()
{
return property;
}

public void setProperty(String property)
{
this.property = property;
}

public String getScope()
{
return scope;
}

public void setScope(String scope)
{
this.scope = scope;
}

public int doStartTag() throws JspException
{
JspWriter out = pageContext.getOut();

Object value = null;
if (property != null)
{
value = RequestUtils.lookup(pageContext, name, property, scope);
}
else
{
value = RequestUtils.lookup(pageContext, name, scope);
}

if (value instanceof Integer)
{
   if (value.intValue()!=0)
{
try
{
NumberFormat nf = NumberFormat.getCurrencyInstance((Locale)
pageContext.getSession().getAttribute(Globals.LOCALE_KEY));
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);

out.print(nf.format((Integer) value).doubleValue());
}
catch (Exception e)
{
    e.printStackTrace();   
}
}
else
out.print("&nbsp;");

}

return EVAL_BODY_INCLUDE;
}

public void release()
{
super.release();
name = null;
property = null;
scope = null;
}
}

----
du skal ha' en tld fil ala:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library
1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>thjaaa</shortname>

<tag>
<name>currency</name>
<tagclass>CurrencyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>


I din jsp side, hvis du har en iteratoe med transaction bean:

<%@ taglib uri="/WEB-INF/tld/thjaaa.tld" prefix="thjaaa" %>

<table>
<logic:iterate name="transactions" id="transcation">
<tr>
<td>
<thjaaa:currency name="transcation" property="price"/>
</td>
</tr>
</logic:iterate>
</table>



Du skal så ændre CurrencyFormatteren til noget andet.... så er java verden
da heller ikke så slem... vel?



Martin


forresten... nogle af tingene kan være struts afhænige, men du finder jo
nok en vej uden om ;)

Nikolaj Hansen (28-06-2005)
Kommentar
Fra : Nikolaj Hansen


Dato : 28-06-05 17:30

Mette Stephansen wrote:
> Nu er det således at vi SKAL bruge Java, så der er ingen vej uden om, hvad
> enten jeg synes bedre om Rexx, c# eller andre sprog. Verden er givet: Java
> + JSP.

Med fare for at starte en flame krig så er java / C# syntaktisk to sider
af den samme mønt.

At verden er givet er en dårlig begrundelse. Man bør bruge det værktøj
der løser opgaven bedst. Du vil jo heller ikke give en tømrer en
murerske vel ?

> Og så er det da at jeg leder efter de formelle måder at gøre tingene på, og
> netop IKKE selv opfinde dybe tallekener, fordi det mener jeg dybest set ikke
> at jeg er ansat til. Jeg er ansat til at varetage forretningens interesser,
> ikke at udvikle småting, der formentlig er lavet 1000 gange før i verden,
> hvor sjove og underholdende de end ellers måtte være. Hvem laver i dag selv
> moduler til modulus 11/10 check etc? Nej, vel? Det er lavet 1000 gange før
> og findes i rigt mål.

Du skal ikke forvente at du kan bruge 100% af din tid på
forretningsmæssige finurligheder ved java. Java / C# er i høj grad for
folk, der også finder den tekniske del (algoritme/logik/model)
interessante, og synes det er en udfordring at lave dette så strømlignet
som muligt.

Jeg tror du vil opdage at mange af de ting du efterlyser "er lavet 1000
gange før" ligger i sdk'ens standard library og hvis ikke så i de
libraries i J2EE der implementerer webcontainer / entity container.

Det er et spg. om at vide, hvor de er. Og det er, som med alt andet, et
spg. om erfaring og hands-on.

mvh

Nikolaj Hansen

Ukendt (28-06-2005)
Kommentar
Fra : Ukendt


Dato : 28-06-05 21:27

Hejsa

Jeg gir dig da ret .... men da jeg kun er lønslaven her, så tæller min
mening ikke i den store sammenhæng. Firmaet har valgt at al fremtidig kode
skal baseres på Java og jsp. Alle hidtige systemer baseret på asp/vb og
cobol skal med tiden erstattes med java baserede appl. Sådan er verden -
det kan jeg ikke ændre på. Den appl. jeg laver nu, kunne jeg også have
lavet 10 fold hurtigere i ASP, primært pga bønner omkring data access, men
som sagt chefen siger "hop" - og jeg siger "hvor højt" Jeg kunne også
godt tænke mig at man ud fra en værktøjskasse valgte de mest hensigtsmæssige
værktøjer - klart at man jo ikke skal have 17 forskl.
programmeringssprog/metoder. Men min verden hedder Java, java and nothing
but java Og det er det jeg forsøger at komme til tåls med.

De få erfaringer jeg har med java passer meget godt med dine sidste
betragtninger. Vi har til det kæmpeprojekt ansat en del folk - en del
dataloger, og deriblandt også en del "nørder" (ikke negativt ment, men ment
som i "forskere, der elsker at finde nye finurligheder og dyrke diverse
pakker og hente dimser alle steder fra). Men sådan er java verdenen måske
også? Har lige læst lidt om den nye java SDK 1.5 - det ser da ud som om
visse ting er blevet nemmere og mere gennemskuelige. Så måske arbejder
udviklingen stadig for os ....

Omkring at finde det i SDK'et, så mente jeg rent faktsik netop at have
fundet det, idet det står at tegnet # repræsenterer et tal, men erstattes
med blanke, hvis der er nuller. Det gælder i java åbenbart så ikke lige
netop, hvis tallet er nul - mens det i C# rent faktisk virker helt som jeg
forventede.

mvh
Mette



"Nikolaj Hansen" <barnabasdk@gmail.com> skrev i en meddelelse
news:pSewe.57398$Fe7.188933@news000.worldonline.dk...
> Mette Stephansen wrote:
> > Nu er det således at vi SKAL bruge Java, så der er ingen vej uden om,
hvad
> > enten jeg synes bedre om Rexx, c# eller andre sprog. Verden er givet:
Java
> > + JSP.
>
> Med fare for at starte en flame krig så er java / C# syntaktisk to sider
> af den samme mønt.
>
> At verden er givet er en dårlig begrundelse. Man bør bruge det værktøj
> der løser opgaven bedst. Du vil jo heller ikke give en tømrer en
> murerske vel ?
>
> > Og så er det da at jeg leder efter de formelle måder at gøre tingene på,
og
> > netop IKKE selv opfinde dybe tallekener, fordi det mener jeg dybest set
ikke
> > at jeg er ansat til. Jeg er ansat til at varetage forretningens
interesser,
> > ikke at udvikle småting, der formentlig er lavet 1000 gange før i
verden,
> > hvor sjove og underholdende de end ellers måtte være. Hvem laver i dag
selv
> > moduler til modulus 11/10 check etc? Nej, vel? Det er lavet 1000 gange
før
> > og findes i rigt mål.
>
> Du skal ikke forvente at du kan bruge 100% af din tid på
> forretningsmæssige finurligheder ved java. Java / C# er i høj grad for
> folk, der også finder den tekniske del (algoritme/logik/model)
> interessante, og synes det er en udfordring at lave dette så strømlignet
> som muligt.
>
> Jeg tror du vil opdage at mange af de ting du efterlyser "er lavet 1000
> gange før" ligger i sdk'ens standard library og hvis ikke så i de
> libraries i J2EE der implementerer webcontainer / entity container.
>
> Det er et spg. om at vide, hvor de er. Og det er, som med alt andet, et
> spg. om erfaring og hands-on.
>
> mvh
>
> Nikolaj Hansen



Michael Rasmussen (28-06-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 28-06-05 21:49

On Tue, 28 Jun 2005 22:27:05 +0200, Mette Stephansen wrote:

>
> De få erfaringer jeg har med java passer meget godt med dine sidste
> betragtninger. Vi har til det kæmpeprojekt ansat en del folk - en del
> dataloger, og deriblandt også en del "nørder" (ikke negativt ment, men
> ment som i "forskere, der elsker at finde nye finurligheder og dyrke
> diverse pakker og hente dimser alle steder fra). Men sådan er java
> verdenen måske også? Har lige læst lidt om den nye java SDK 1.5 - det
> ser da ud som om visse ting er blevet nemmere og mere gennemskuelige. Så
> måske arbejder udviklingen stadig for os ....
>
Mange vil dog mene det modsatte! Med indførelsen af generics og
autoboxing gøres koden vanskeligere at læse og mere kompleks.
Vanskeligere da tildelinger ikke mere skal have et type prefix. Mere
kompleks da generics medfører abstrakte datatyper - datatypen fastlægges
tidligst på compileringstidspunktet. Indførelsen af templates hilser jeg
dog velkommen.

PS. Vil du ikke venligst vende dig til at skrive under den tekst, du
svarer på, og fjerne tekst du ikke svarer på? Det gør det væsentligt
nemmere for udenforstående at følge med i tråden.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Thorbjoern Ravn Ande~ (28-06-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 28-06-05 22:56

"Mette Stephansen" <mm> writes:

> det kan jeg ikke ændre på. Den appl. jeg laver nu, kunne jeg også have
> lavet 10 fold hurtigere i ASP, primært pga bønner omkring data access, men
> som sagt chefen siger "hop" - og jeg siger "hvor højt" Jeg kunne også

Hvis I har mulighed for at bruge en JSP 2.0 container (Tomcat 5 fx)
har I også muligheden for at bruge JSTL som giver en del avancerede
funktionalitet ved at bruge taglibs i JSP-siderne.

Kombinationen af <c:forEach items="...."> og diverse iteratorer (fx
fra SQL) giver noget fornuftig kode.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk/ravn/

Tom Arne Orthe (29-06-2005)
Kommentar
Fra : Tom Arne Orthe


Dato : 29-06-05 10:22

Mette Stephansen wrote:
> Hej igen
>
> Jeg har også været der - og besluttede mig kækt for at formatet #### var
> lige det jeg skulle bruge - hvorefter den skriver 0, når jeg kommer med 0
> ...... så nu har jeg søgt og læst hist & her uden at komme nærmere:
>
> DecimalFormat df = new DecimalFormat (fmt);
> df.applyPattern ("####");
> System.out.println ("1 int=" + df.format (0));

Man kan f.eks. gjøre slik: Da unngår man den verbose vanlige
if-else testen.

int value = 3;
DecimalFormat df = new DecimalFormat (fmt);
df.appplyPattern("####");
System.out.println(value == 0 ? "" : df.format(value));

Men på meg virker det som du har tenkt å skrive java-kode
rett inn i jsp-sidene (<% ... %>). Det er ikke anbefalt
da det gjerne fører til kode som er vanskelig å lese og debugge/endre.
Se på taglibs, spesielt JSTL (JSP Standard Tag Library). De finnes
med flere andre taglibs på http://jakarta.apache.org/taglibs/index.html

Slik kan det se ut:
Antar at value er en tilgjengelig bean som inneholder et Integerobjekt;
<c:if test="${value!=0}">
   <fmt:formatNumber value="${value}" pattern="####" />
</c:if>

Ikke akkurat en uhorvelig mengde med kode. Man må dog sørge for at
bibliotekene som JSTL behøver finnes i classpath til containeren og
man må legge inn en definisjon øverst i JSP-sidene. Dette er ganske
godt forklart i "getting started"-dokumentasjonen på Jakartas sider.

Alternativt kan jeg tenke meg at f.eks. Regexp tagliben kan brukes for å
replace en streng som kun inneholder "0" til å inneholde "".
http://jakarta.apache.org/taglibs/doc/regexp-doc/intro.html

Men den aller beste fremgangsmåten for dere er å lage deres egen
taglib som håndterer både tallene og href-en som skal ligge rundt
dem.

> Det virker skam fint nok, hvis jeg bruger 1, så blir det med de
> foranstillede blanke/nuller fjernet.
>
> Men det er lige netop den gamle fra cobol "blank when zero", vi skal bruge
> i en web-side, hvor der er et hav af tal - og 90% af dem er nuller, og det
> er således kun de tal > 0, man ønsker at se på (og have hrefs fra).
>
> Hjæææælp
>
> mvh
> Mette
>
> PS Jeg tror da også at jeg vænner mig til det - men lige nu er det svært at
> få overblik og acceptere at en given ting kan udføres på 17 forskellige
> måder, afhængigt af udviklerens humør. Jeg synes at programmerne er mere
> "personlige (på den negative måde)" end tilsvarende cobol kode, der ikke gir
> så mange løsningsmuligheder til samme problem.
>
>
> "torben" <torben@frojonck.dk> skrev i en meddelelse
> news:42c04888$0$18648$14726298@news.sunsite.dk...
>
>>>Jeg kan ikke lige se NumberFormat, hvordan man omsætter et 0 -> en
>
> blank?
>
>>>Er det bare mig, der ikke kan læse ? Selvf. kan jeg if'e mig igennem
>
> alle
>
>>>17 felter, men der MÅ være en nemmere, bedre og iøvrigt indbygget
>>>funktion/metode, der kan bruges, ikk?
>>
>>Det er også bedre at kigge på forklaringen til DecimalFormat.
>>linket er
>>http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html
>>
>>Der er både et eksempel, samt en tabel over symbolers betydning.
>>
>>
>>
>>>Grrrr ... som gammel dinosaur programmør (cobol mm.) er mange ting
>
> urimeligt
>
>>>besværlige i Java Der skal ledes, ledes og ledes - end ikke de
>
> erfarne
>
>>>rotter hos os kan svare på den slags .... gad vide om man nogensinde
>
> blir
>
>>>go' ????
>>>
>>
>>Sikkert. Jeg havde det på samme måde som dig til at begynde med. Java
>>syntaksen er et meget simpel, men der er ufattelig mange klasser og
>>interfaces. Hvilket gør det svært at få et oveblik.
>>
>>Omvendt når man først har fået et overblik over hvad der findes, kan man
>>lave advanceret applikationer meget hurtigere end i Cobol o.lign.
>>
>>Torben
>
>
>

Claus Petersen (01-07-2005)
Kommentar
Fra : Claus Petersen


Dato : 01-07-05 13:34


"Mette Stephansen" <mm> skrev i en meddelelse
news:42c04de0$0$63604$edfadb0f@dread15.news.tele.dk...
> Hej igen
>
> Jeg har også været der - og besluttede mig kækt for at formatet #### var
> lige det jeg skulle bruge - hvorefter den skriver 0, når jeg kommer med 0
> ...... så nu har jeg søgt og læst hist & her uden at komme nærmere:
>
> DecimalFormat df = new DecimalFormat (fmt);
> df.applyPattern ("####");
> System.out.println ("1 int=" + df.format (0));
>
> Det virker skam fint nok, hvis jeg bruger 1, så blir det med de
> foranstillede blanke/nuller fjernet.
>
> Men det er lige netop den gamle fra cobol "blank when zero", vi skal
> bruge
> i en web-side, hvor der er et hav af tal - og 90% af dem er nuller, og det
> er således kun de tal > 0, man ønsker at se på (og have hrefs fra).
>
> Hjæææælp
>
> mvh
> Mette
>

Hvad med at bruge Jave som det er designet til......

Hvis du laver din egen DecimalFormat klasse der extender DecimalFormat

Der kan du så fx tilføje en funktion der fortæller hvilke tegn der skal
erstattes med hvad
ex:
pseudo kode:
replace(char oldChar, char newChar)
{
this.oldChar = oldChar;
this.newChar = newChar;
}


Så overskriver du funktionen format(Integer i) sådan at den erstatter de
tegn du vil have erstattet.

pseudo kode:

public String format(Integer i)
{
String s = super.format(i);
s.replace(oldChar, newChar);
return s;

}

Og vupti du skal kun gøre det en gang 'alle' dine IF sætninger ligger nu
i din helt egen klasse og den kan du så bruge igen og igen


Claus



Jonas Kongslund (27-06-2005)
Kommentar
Fra : Jonas Kongslund


Dato : 27-06-05 16:14

On Mandag 27 juni 2005 12:29, Mette Stephansen wrote:
> Jeg har et felt (integer), som skal skrives i en JSP side. Feltet
> indeholder 0, og skal derfor skrives som en space. Andre tal skal
> vises i formatet n.nnn.nnn hvor de foranstillede blanke er fjernet.
[...]
> Er der nogen, der kan henvise lidt læsestof eller en løsning?

Som Søren angiver, så kan du bruge NumberFormat. Alternativt kan du bruge
JSTL:

JavaServer Pages Standard Tag Library
http://java.sun.com/products/jsp/jstl/

JSTL 1.0: Standardizing JSP, Part 1
http://www.onjava.com/pub/a/onjava/2002/08/14/jstl1.html

JSTL 1.0: What JSP Applications Need, Part 2
http://www.onjava.com/pub/a/onjava/2002/09/11/jstl2.html

JSTL 1.0: What JSP Applications Need, Part 3
http://www.onjava.com/pub/a/onjava/2002/10/30/jstl3.html

--
Jonas Kongslund

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409075
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste