HaysSpecialismTree

IT_jobs

Information Technology jobs

You bring the skills. We’ll bring the opportunities. Hays partners with top employers to deliver the latest job openings to candidates. Explore contract, temporary, and permanent roles in information technology across a wide range of disciplines  including architecture, artificial intelligence, security, management, quality assurance, development and more.

Top roles:

  • Software Developers
  • Software Tester
  • Project Managers
  • Business Analysts
  • IT Security
  • Quality Assurance
  • IT Architects
  • ERP Consultants
  • IT Support

HaysSearchForm Portlet

Information technology Features page

An error occurred while processing the template.
The following has evaluated to null or missing:
==> EmpResultArray.get(i).image  [in template "20115#20151#81915" at line 107, column 53]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign empImage = EmpResultArray.get...  [in template "20115#20151#81915" at line 107, column 33]
	- Reached through: @liferay_ui["section"]  [in template "20115#20151#81915" at line 101, column 25]
	- Reached through: @liferay_ui["tabs"] names=tabsLabels ...  [in template "20115#20151#81915" at line 93, column 17]
----
1<#assign FeaturedEmployerTitle = FeaturedEmployerTitle.getData()> 
2<#assign PopularSearchesTitle = PopularSearchesTitle.getData()> 
3<#assign LatestJobsTitle = LatestJobsTitle.getData()> 
4<#assign tabsLabels = ""> 
5<#assign featuredCount = 0>  
6<#assign latestJobsCount = 0> 
7<#assign assignedCategoriesIds = ""> 
8<#assign assignedCategoriesNames = ""> 
9<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
10<#assign plId = layout.getPlid()> 
11<#assign layoutEntry = assetEntryLocalService.fetchEntry("com.liferay.portal.kernel.model.Layout", plId)> 
12<#assign assetCategories = layoutEntry.getCategories()/> 
13 
14<#assign keyword = ""> 
15<#assign subSpecialismId = "">  
16<#assign specialismId = ""> 
17<#assign parentPlid = layout.getParentPlid()> 
18 
19<#if FeaturedEmployerTitle != ""> 
20    <#assign FeaturedEmployerTitle += ','>  
21	<#assign featuredEmployerService = serviceLocator.findService("com.hays.employer.service.HaysFeaturedEmployerLocalService")  /> 
22	<#assign totalCount = 6 > 
23	<#assign groupIdVal = groupId?c > 
24	<#assign targetAudience = "common,jobseeker" > 
25	<#list assetCategories as cat> 
26       <#assign catName = cat.getCategoryId()> 
27       <#assign catName += '|'> 
28       <#assign assignedCategoriesIds += catName> 
29	</#list> 
30	<#assign assignedCategoriesIds = assignedCategoriesIds?keep_before("|")/> 
31	<#assign response = featuredEmployerService.getFeaturedEmployers(assignedCategoriesIds, groupIdVal, targetAudience, totalCount)> 
32	<#if response.EmpResult??> 
33		<#assign EmpResultArray = response.getJSONArray("EmpResult")> 
34		<#assign featuredCount = EmpResultArray.length()>	 
35		<#if featuredCount !=0> 
36			<#assign tabsLabels += FeaturedEmployerTitle>  
37		</#if> 
38	</#if> 
39</#if> 
40 
41<#if LatestJobsTitle != ""> 
42	<#assign LatestJobsTitle += ','> 
43	<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
44	<#assign nodeId = LayoutLocalService.getLayout(parentPlid).getExpandoBridge().getAttribute("NodeId")> 
45	<#list assetCategories as cat> 
46       <#assign catName = cat.getName()> 
47       <#assign catName += '|'> 
48       <#assign assignedCategoriesNames += catName> 
49	</#list> 
50	<#assign assignedCategoriesNames = assignedCategoriesNames?keep_before("|")/> 
51	<#if nodeId == "job-seeker"> 
52		<#assign specialismId = assignedCategoriesNames> 
53	<#else> 
54		<#assign subSpecialismId = assignedCategoriesNames>  
55	</#if> 
56	<#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale"> 
57	<#assign projectSURLKey = "Mobile_URL_" + locale.getCountry()> 
58	<#if (siteType != "Expert")> 
59		<#assign projectSURLKey = projectSURLKey + "_"+ siteType> 
60	</#if> 
61	<#assign locale = propsUtil.get(ucmLocaleKey)/> 
62	<#assign GCSLocales = propsUtil.get("GCSLocales")/> 
63	<#assign projectSURL = propsUtil.get(projectSURLKey)/> 
64	<#assign countJobs = "5"> 
65	<#assign assetEntryLocalService = serviceLocator.findService("com.hays.service.jobs.service.HaysJobsLocalService")/> 
66	<#assign getResponse = assetEntryLocalService.getjobs("keyword", specialismId, subSpecialismId, countJobs, locale)> 
67	<#if getResponse?? && getResponse.result??> 
68		<#assign getResponseResult = getResponse.result> 
69		<#if getResponseResult.resultCount gt 0> 
70			<#assign getResponseResultArray = getResponseResult.getJSONArray("jobs")> 
71			<#assign latestJobsCount = getResponseResultArray.length()> 
72			<#if getResponseResultArray.length() < 5> 
73				<#assign countJobs = getResponseResultArray.length()> 
74			</#if> 
75			<#if latestJobsCount != 0> 
76				<#assign tabsLabels += LatestJobsTitle> 
77			</#if> 
78		</#if> 
79	</#if> 
80</#if> 
81 
82<#if PopularSearchesTitle != ""> 
83	<#assign PopularSearchesTitle += ','> 
84	<#if Label.getSiblings()?has_content> 
85		<#assign tabsLabels += PopularSearchesTitle> 
86	</#if> 
87</#if> 
88	 
89<#if tabsLabels != ""> 
90	<div class="box"> 
91		<div class="hays-tabs"> 
92		<#assign tabsLabels = tabsLabels?keep_before_last(",")/> 
93		<@liferay_ui["tabs"] 
94		names=tabsLabels 
95		param=tabs2 
96		refresh=false 
97		type=tabs 
98
99		 
100		<#if FeaturedEmployerTitle != "" && featuredCount !=0> 
101			<@liferay_ui["section"] > 
102			<ul class="list emp-list"> 
103			<#list 0 ..< featuredCount as i> 
104				<#assign empTitle = EmpResultArray.get(i).title> 
105				<#assign empArticleId = EmpResultArray.get(i).articleId> 
106				<#assign empUrl = EmpResultArray.get(i).empUrl>  
107				<#assign empImage = EmpResultArray.get(i).image> 
108				<li class="${empArticleId}"><a href="${empUrl}" target="_blank"><img src="${empImage}" alt="${empTitle}"></a></li> 
109			</#list> 
110			</ul> 
111			<#assign privateLayout = false> 
112			<#assign LayoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")> 
113			<#assign layouts = LayoutLocalService.getLayouts(groupId, privateLayout)> 
114			<#assign featureEmployerPageUrl =  "/"> 
115			<#if (layouts?size > 0)> 
116				<#assign featuredEmpSectionFound = 0> 
117				<#list layouts as layout> 
118					<#if layout?? &&  featuredEmpSectionFound == 0> 
119						<#assign nodeIdFeatured = layout.getExpandoBridge().getAttribute("NodeId")> 
120						<#if (nodeIdFeatured??)> 
121							<#if (nodeIdFeatured == "featured-employer")> 
122								<#assign featuredEmpSectionFound = 1> 
123								<#assign featureEmployerPageUrl = layout.getFriendlyURL()> 
124								<#assign portalurl= themeDisplay.getURLPortal() > 
125								<#if portalurl?contains("expertcontrib")> 
126									<#assign featureEmployerPageUrl= "/web"+themeDisplay.getSiteGroup().getFriendlyURL()+ featureEmployerPageUrl > 
127								</#if> 
128							</#if> 
129						</#if> 
130					</#if> 
131				</#list> 
132			</#if> 
133			<a class="btn" href="${featureEmployerPageUrl}">${languageUtil.get(themeDisplay.getLocale(), "lr_featuredEmployersTitle")}</a> 
134			</@> 
135		</#if> 
136		 
137		<#if LatestJobsTitle != "" && latestJobsCount != 0 > 
138			<@liferay_ui["section"]> 
139			<ul class="list sponsored-list"> 
140			<#list 0 ..< countJobs?number as i> 
141				<#assign JobUrl = getResponseResultArray.get(i).jobRequisitionId> 
142				<#if GCSLocales?contains(locale)> 
143					<#assign JobUrl += "?jobSource=HaysGCJ"> 
144				</#if> 
145				<#assign jobtitle = getResponseResultArray.get(i).title> 
146				<#if getResponseResultArray.get(i).getJSONObject("nonFilterableCustomFields").has("xLocationDescription")> 
147					<#assign location = getResponseResultArray.get(i).getJSONObject("nonFilterableCustomFields").getJSONObject("xLocationDescription").getJSONArray("values").getString(0)> 
148				<#else> 
149					<#assign location = ""> 
150				</#if> 
151				<li><a href="${JobUrl}"><strong>${jobtitle}</strong><small><p>${location}</p></small></a></li> 
152			</#list> 
153			</ul> 
154			<a class="btn" href="${projectSURL}${propsUtil.get("SEARCH")}?q=hays&amp;specialismId=${specialismId}&amp;subSpecialismId=${subSpecialismId}"><span>${languageUtil.get(themeDisplay.getLocale(), "lr_latestAllJobs")}</span></a> 
155			</@> 
156		</#if> 
157		 
158		<#if PopularSearchesTitle != ""> 
159			<@liferay_ui["section"]> 
160			<#if Label.getSiblings()?has_content> 
161				<ul class="list arrow-list"> 
162				<#list Label.getSiblings() as cur_PopularSearchesContent> 
163					<li ><h3><a target="_blank" href="${cur_PopularSearchesContent.Link.getData()}">${cur_PopularSearchesContent.getData()}</a></h3></li> 
164				</#list> 
165				</ul> 
166			</#if> 
167			</@> 
168		</#if> 
169		</div> 
170	</div> 
171</@> 
172</#if> 

Additional Resources_right hand

Interested in additional resources?

From salary guides, to labour market reports, blogs and more - we've got it. 

View now